[interchange-cvs] interchange - jon modified code/UserTag/var.tag
interchange-cvs at icdevgroup.org
interchange-cvs at icdevgroup.org
Wed Feb 11 09:40:45 EST 2004
User: jon
Date: 2004-02-11 14:40:45 GMT
Modified: code/UserTag var.tag
Log:
Allow filter attribute to var tag, similar to value, cgi, and scratch,
except that filtered value will never be saved back into the variable.
Example:
[var name=ADDRESS filter=html2text]
Incidentally I think the logic of this tag's code is now much easier to
follow.
Revision Changes Path
1.5 +17 -12 interchange/code/UserTag/var.tag
rev 1.5, prev_rev 1.4
Index: var.tag
===================================================================
RCS file: /var/cvs/interchange/code/UserTag/var.tag,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -u -r1.4 -r1.5
--- var.tag 13 Jan 2003 23:28:48 -0000 1.4
+++ var.tag 11 Feb 2004 14:40:45 -0000 1.5
@@ -1,4 +1,4 @@
-# [var name=variablename global=1|2]
+# [var name=variablename global=1|2 filter=somefilter]
#
# This tag allows access to variables within other variables (or
# anywhere else, but in regular pages the direct non-tag notations
@@ -13,17 +13,22 @@
UserTag var Routine <<EOR
sub {
my ($key, $global) = @_;
- $global and $global != 2 and return $Global::Variable->{$key};
- return $Vend::Cfg->{Member}{$key}
- if $Vend::Session->{logged_in}
- && defined $Vend::Cfg->{Member}{$key};
-
- if($::Pragma->{dynamic_variables}) {
- return Vend::Interpolate::dynamic_var($key) || $Global::Variable->{$key}
- if $global;
- return Vend::Interpolate::dynamic_var($key);
+ my $value;
+ if ($global and $global != 2) {
+ $value = $Global::Variable->{$key};
}
- return $::Variable->{$key} || $Global::Variable->{$key} if $global;
- return $::Variable->{$key};
+ elsif ($Vend::Session->{logged_in} and defined $Vend::Cfg->{Member}{$key}) {
+ $value = $Vend::Cfg->{Member}{$key};
+ }
+ else {
+ $value = (
+ $::Pragma->{dynamic_variables}
+ ? Vend::Interpolate::dynamic_var($key)
+ : $::Variable->{$key}
+ );
+ $value ||= $Global::Variable->{$key} if $global;
+ }
+ $value = filter_value($opt->{filter}, $value, $key) if $opt->{filter};
+ return $value;
}
EOR
More information about the interchange-cvs
mailing list