[ic] Modifications to Selected and Checked Coretags
Mike Heins
mike at perusion.com
Fri Oct 17 01:09:53 EDT 2003
Quoting Mat Jones (mat at thinkopensource.com):
> I have made some minor modifications to the [selected] and [checked]
> coretags (4.9.8) to allow a delimiter="" option to be specified. If
> delimiter="foo" is used then multiple="1" is assumed and not required. The
> tag is backward compatible, so anyone currently using multiple="1" will not
> have any issues.
>
> Example usage (with a comma delimited list):
>
> <select name="mail_list" MULTIPLE>
> <option value="newsletter" [selected name="mail_list" value="newsletter"
> delimiter=","]>newsletter
> <option value="upgrade" [selected name="mail_list" value="upgrade"
> delimiter=","]>upgrade
> </select>
>
> The diffs are below. Hope its of some use :)
A good deal of use. It works fine, and passes all of the
regression tests (I have some pretty good ones for those).
Those who know me realize I can't keep my hands off of someone
else's good patch, so I had to change it to:
if ($opt->{multiple}) {
my $be;
my $ee;
$opt->{delimiter} = "\0" unless defined $opt->{delimiter};
if (length $opt->{delimiter}) {
my $del = Vend::Interpolate::get_joiner($opt->{delimiter}, "\0");
$be = '(?:^|' . $del . ')'; ;
$ee = '(?:$|' . $del . ')'; ;
}
else {
$be = '';
$ee = '';
}
my $regex = qr/$be\Q$value\E$ee/;
return ' SELECTED' if $ref =~ $regex;
}
This allows a defined but empty delimiter:
foo=[value name=foo set="ab|ceg"]
<p>
[loop list="a b c d e f g |"]
[loop-code]:[selected name=foo value="[loop-code]" multiple=1 delimiter=""]<br>
[/loop]
This can be useful for concatenating one-letter/digit options for storage
without a delimiter.
Thank you for an excellent suggestion and excellent code implmenting it.
These are in CVS and will be in the next nightly build.
--
Mike Heins
Perusion -- Expert Interchange Consulting http://www.perusion.com/
phone +1.513.523.7621 <mike at perusion.com>
If you think nobody cares if you're alive, try missing a couple of
car payments. -- Earl Wilson
More information about the interchange-users
mailing list