[interchange-cvs] interchange - heins modified
code/SystemTag/error.coretag
interchange-cvs at icdevgroup.org
interchange-cvs at icdevgroup.org
Tue Sep 23 11:30:00 EDT 2003
User: heins
Date: 2003-09-23 14:30:22 GMT
Modified: code/SystemTag error.coretag
Log:
* Add [error auto=1] similar to [warnings auto=1].
Revision Changes Path
1.2 +35 -2 interchange/code/SystemTag/error.coretag
rev 1.2, prev_rev 1.1
Index: error.coretag
===================================================================
RCS file: /var/cvs/interchange/code/SystemTag/error.coretag,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- error.coretag 29 Jan 2002 05:52:38 -0000 1.1
+++ error.coretag 23 Sep 2003 14:30:22 -0000 1.2
@@ -3,6 +3,7 @@
UserTag error Order name
UserTag error addAttr
UserTag error PosNumber 1
+UserTag error Version $Revision: 1.2 $
UserTag error Routine <<EOR
sub set_error {
my ($error, $var, $opt) = @_;
@@ -31,9 +32,38 @@
}
my $err_ref = $Vend::Session->{errors};
my $text;
- $text = $opt->{text} if $opt->{text};
my @errors;
my $found_error = '';
+
+ if($opt->{auto}) {
+ $opt->{all} = 1;
+ $opt->{show_error} = 1;
+ $opt->{std_label} = 0;
+ $opt->{show_var} = 1
+ unless defined $opt->{show_var};
+ $opt->{joiner} = '<li>'
+ unless length $opt->{joiner};
+ $opt->{text} ||= '%s';
+ $opt->{list_container} ||= 'ul';
+ my $out = '';
+ $out .= "<$opt->{list_container}";
+ for(qw/ class style extra /) {
+ next unless $opt->{$_};
+ if($_ eq 'extra') {
+ $out .= ' ' . $opt->{$_};
+ }
+ else {
+ $out .= ' ' . qq{$_="$opt->{$_}"};
+ }
+ }
+ $out .= '>';
+ $out .= $opt->{joiner};
+ $opt->{header} ||= $out;
+ $opt->{footer} ||= "</$opt->{list_container}>";
+ }
+
+ $text = $opt->{text} if $opt->{text};
+
#::logDebug("tag_error: var=$var text=$text opt=" . ::uneval($opt));
#::logDebug("tag_error: var=$var text=$text");
if($opt->{all}) {
@@ -62,7 +92,10 @@
return $found_error unless $text || $opt->{show_error};
$text .= "%s" if $text !~ /\%s/;
$text = pull_else($text, $found_error);
- return sprintf $text, join($opt->{joiner}, @errors);
+
+ return '' unless @errors;
+ my $etext = sprintf $text, join($opt->{joiner}, @errors);
+ return join "", $opt->{header}, $etext, $opt->{footer};
}
$found_error = ! (not $err_ref->{$var});
my $err = $err_ref->{$var} || '';
More information about the interchange-cvs
mailing list