move cart access from bse.variables to the request object
authorTony Cook <tony@develop-help.com>
Fri, 16 Nov 2012 11:20:59 +0000 (22:20 +1100)
committerTony Cook <tony@develop-help.com>
Fri, 16 Nov 2012 11:20:59 +0000 (22:20 +1100)
site/cgi-bin/modules/BSE/Request/Base.pm
site/cgi-bin/modules/BSE/Variables.pm
site/templates/cart_base.tmpl

index 3ed1e8e..21a5f4c 100644 (file)
@@ -1314,4 +1314,13 @@ sub ip_address {
   return $ENV{REMOTE_ADDR};
 }
 
+sub cart {
+  my ($self, $stage) = @_;
+
+  require BSE::Cart;
+  $self->{cart} ||= BSE::Cart->new($self, $stage);
+
+  return $self->{cart};
+}
+
 1;
index 39b72fb..8ca416b 100644 (file)
@@ -4,7 +4,7 @@ use Scalar::Util qw(blessed);
 use BSE::TB::Site;
 use BSE::Util::HTML;
 
-our $VERSION = "1.007";
+our $VERSION = "1.008";
 
 sub _base_variables {
   my ($self, %opts) = @_;
@@ -49,16 +49,10 @@ sub dyn_variables {
 
   my $req = $opts{request} or die "No request parameter";
   my $cgi = $req->cgi;
-  my $cart;
   return
     +{
       $self->_base_variables(%opts),
       paged => sub { return _paged($cgi, @_) },
-      cart => sub {
-       require BSE::Cart;
-       $cart ||= BSE::Cart->new($req);
-       return $cart;
-      },
      };
 }
 
@@ -432,10 +426,6 @@ ppname - the name of the items per page parameter
 
 =back
 
-=item bse.cart
-
-The contents of the cart.  See L<BSE::Cart> for details.
-
 =back
 
 =head1 AUTHOR
index a9006d0..01a6d99 100644 (file)
@@ -42,7 +42,7 @@
             <td height="18"> &nbsp;<font face="Verdana, Arial, Helvetica, sans-serif" size="-2" color="#FFFFFF"><b>Price:</b></font>&nbsp;</td>
             <td height="18">&nbsp; </td>
           </tr>
-         <:-.set items = assert_dynamic ? bse.cart.items : 0 -:>
+         <:-.set items = request.cart.items -:>
           <:.if items.size -:>
            <:.for item in items -:>
              <:.set options = item.option_list -:>