[interchange-cvs] interchange - heins modified lib/Vend/Menu.pm

interchange-core@icdevgroup.org interchange-core@icdevgroup.org
Mon Jan 13 19:25:00 2003


User:      heins
Date:      2003-01-14 00:24:27 GMT
Modified:  lib/Vend Menu.pm
Log:
* Allow adding another value to the menu data from the option line, allows
  display of data that comes from the page.

Revision  Changes    Path
2.21      +23 -3     interchange/lib/Vend/Menu.pm


rev 2.21, prev_rev 2.20
Index: Menu.pm
===================================================================
RCS file: /var/cvs/interchange/lib/Vend/Menu.pm,v
retrieving revision 2.20
retrieving revision 2.21
diff -u -r2.20 -r2.21
--- Menu.pm	8 Dec 2002 06:12:59 -0000	2.20
+++ Menu.pm	14 Jan 2003 00:24:27 -0000	2.21
@@ -1,6 +1,6 @@
-# Vend::Menu - Interchange payment processing routines
+# Vend::Menu - Interchange menu processing routines
 #
-# $Id: Menu.pm,v 2.20 2002/12/08 06:12:59 mheins Exp $
+# $Id: Menu.pm,v 2.21 2003/01/14 00:24:27 mheins Exp $
 #
 # Copyright (C) 2002 Mike Heins, <mike@perusion.net>
 #
@@ -21,7 +21,7 @@
 
 package Vend::Menu;
 
-$VERSION = substr(q$Revision: 2.20 $, 10);
+$VERSION = substr(q$Revision: 2.21 $, 10);
 
 use Vend::Util;
 use strict;
@@ -343,6 +343,20 @@
 	},
 );
 
+sub extra_value {
+	my ($extra, $row) = @_;
+	if(ref($extra) ne 'HASH') {
+		my ($k, $v) = split /=/, $extra, 2;
+		$extra = { $k => $v };
+	}
+
+	for(keys %$extra) {
+		$row->{$_} = $extra->{$_}
+			if length($extra->{$_});
+	}
+	return;
+}
+
 sub reset_transforms {
 #::logDebug("resetting transforms");
 	my $opt = shift;
@@ -817,6 +831,8 @@
 
 	for my $row (@$rows) {
 		next if $_->{deleted};
+		extra_value($opt->{extra_value}, $row)
+			if $opt->{extra_value};
 		push @out, Vend::Tags->uc_attr_list($row, $template);
 	}
 
@@ -1159,6 +1175,8 @@
 	else {
 		$row->{toggle_anchor} =	$opt->{toggle_anchor_clear};
 	}
+	extra_value($opt->{extra_value}, $row)
+			if $opt->{extra_value};
 	return Vend::Tags->uc_attr_list($row, $template);
 }
 
@@ -1312,6 +1330,8 @@
 		}
 		$row->{href} = Vend::Tags->area( { href => $row->{page}, form => $row->{form} });
 	}
+	extra_value($opt->{extra_value}, $row)
+			if $opt->{extra_value};
 	return Vend::Tags->uc_attr_list($row, $template);
 }