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

interchange-core@icdevgroup.org interchange-core@icdevgroup.org
Tue Apr 29 11:50:05 2003


User:      heins
Date:      2003-04-29 15:49:22 GMT
Modified:  lib/Vend Menu.pm
Log:
* Add "items" check to menu to allow showing an entry only if items are
  in the cart. Works for current cart ($Vend::Items) only.

Revision  Changes    Path
2.26      +13 -2     interchange/lib/Vend/Menu.pm


rev 2.26, prev_rev 2.25
Index: Menu.pm
===================================================================
RCS file: /var/cvs/interchange/lib/Vend/Menu.pm,v
retrieving revision 2.25
retrieving revision 2.26
diff -u -r2.25 -r2.26
--- Menu.pm	19 Apr 2003 18:26:10 -0000	2.25
+++ Menu.pm	29 Apr 2003 15:49:22 -0000	2.26
@@ -1,6 +1,6 @@
 # Vend::Menu - Interchange menu processing routines
 #
-# $Id: Menu.pm,v 2.25 2003/04/19 18:26:10 mheins Exp $
+# $Id: Menu.pm,v 2.26 2003/04/29 15:49:22 mheins Exp $
 #
 # Copyright (C) 2002 Mike Heins, <mike@perusion.net>
 #
@@ -21,7 +21,7 @@
 
 package Vend::Menu;
 
-$VERSION = substr(q$Revision: 2.25 $, 10);
+$VERSION = substr(q$Revision: 2.26 $, 10);
 
 use Vend::Util;
 use strict;
@@ -191,6 +191,17 @@
 		my $status = 1;
 		for(@$fields) {
 			$status = $status && (! $row->{$_} or Vend::Tags->if_mm('super'));
+		}
+		return $status;
+	},
+	items	=> sub {
+		my ($row, $fields) = @_;
+		return 1 if ref($fields) ne 'ARRAY';
+		my $status = 1;
+		my $nitems = scalar(@{$Vend::Items}) ? 1 : 0;
+		for(@$fields) {
+			next if ! length($row->{$_});
+			$status = $status && (! $nitems ^ $row->{$_});
 		}
 		return $status;
 	},