[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