Also look in the next-highest directory when detecting VCS; add SVN
[interchange.git] / code / SystemTag / checked.coretag
1 # Copyright 2002-2007 Interchange Development Group and others
2
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 2 of the License, or
6 # (at your option) any later version.  See the LICENSE file for details.
7
8 UserTag checked             Order        name value
9 UserTag checked             addAttr
10 UserTag checked             Implicit     multiple multiple
11 UserTag checked             Implicit     default default
12 UserTag checked             PosNumber    2
13 UserTag checked             Version      1.9
14 UserTag checked             Routine      <<EOR
15 sub {
16         my ($field,$value,$opt) = @_;
17
18         $value = 'on' unless defined $value;
19
20         my $ref = $opt->{cgi} ? $CGI::values{$field} : $::Values->{$field};
21         return ' checked="checked"' if ! length($ref) and $opt->{default};
22
23         if(! $opt->{case}) {
24                 $ref = lc($ref);
25                 $value = lc($value);
26         }
27
28         return ' checked="checked"' if $ref eq $value;
29
30         if ($opt->{delimiter}) {
31                 $opt->{multiple} = 1;
32         }
33
34         if ($opt->{multiple}) {
35             
36             my $be;
37             my $ee;
38             $opt->{delimiter} = "\0" unless defined $opt->{delimiter};
39
40             if (length $opt->{delimiter}) {
41                 my $del = Vend::Interpolate::get_joiner($opt->{delimiter}, "\0");
42                 $be = '(?:^|' . $del . ')'; ;
43                 $ee = '(?:$|' . $del . ')'; ;
44             }
45             else {
46                 $be = '';
47                 $ee = '';
48             }
49
50             my $regex = qr/$be\Q$value\E$ee/;
51             return ' checked="checked"' if $ref =~ $regex;
52         }
53         return '';
54 }
55 EOR