nitems — return the total number of items in the electronic cart
Attribute | Pos. | Req. | Default | Description |
---|---|---|---|---|
name | Yes | Yes |
main
|
Cart name. |
lines | 0 | Whether to show the number of lines in the cart instead of the sum of the items. | ||
qualifier | An item attribute that must evaluate to a true value, in order for the item to be counted. | |||
compare |
Instead of counting items based solely on item attribute
"trueness" (as qualifier= does by default),
perform the specified regular expression pattern matching on the
qualifier= attribute.
|
|||
interpolate | 0 | interpolate output? | ||
hide | 0 | Hide the tag return value? |
Interchange 5.9.0:
Source: code/SystemTag/nitems.coretag
Lines: 14
# Copyright 2002-2007 Interchange Development Group and others # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. See the LICENSE file for details. # # $Id: nitems.coretag,v 1.5 2007-03-30 23:40:49 pajamian Exp $ UserTag nitems Order name UserTag nitems addAttr UserTag nitems PosNumber 1 UserTag nitems Version $Revision: 1.5 $ UserTag nitems MapRoutine Vend::Util::tag_nitems
Source: lib/Vend/Util.pm
Lines: 1501
sub tag_nitems { my($ref, $opt) = @_; my($cart, $total, $item); if($ref) { $cart = $::Carts->{$ref} or return 0; } else { $cart = $Vend::Items; } my ($attr, $sub); if($opt->{qualifier}) { $attr = $opt->{qualifier}; my $qr; eval { $qr = qr{$opt->{compare}} if $opt->{compare}; }; if($qr) { $sub = sub { $_[0] =~ $qr; }; } else { $sub = sub { return $_[0] }; } } if($opt->{lines}) { return scalar(grep {! $attr or $sub->($_->{$attr})} @$cart); } $total = 0; foreach $item (@$cart) { next if $attr and ! $sub->($item->{$attr}); if ($opt->{gift_cert} && $item->{$opt->{gift_cert}}) { $total++; next; } $total += $item->{'quantity'}; } $total; }