0.12_11 commit r0_12_11
authorTony Cook <tony@develop-help.com>
Tue, 27 Aug 2002 02:59:19 +0000 (02:59 +0000)
committertony <tony@45cb6cf1-00bc-42d2-bb5a-07f51df49f94>
Tue, 27 Aug 2002 02:59:19 +0000 (02:59 +0000)
Makefile
localinst.perl
site/cgi-bin/modules/BSE/CustomBase.pm
site/cgi-bin/modules/BSE/Edit/Article.pm
site/cgi-bin/modules/BSE/Shop/Util.pm
site/cgi-bin/shop.pl
site/docs/bse.pod

index 8a9ce40..c0bd27a 100755 (executable)
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-VERSION=0.12_10
+VERSION=0.12_11
 DISTNAME=bse-$(VERSION)
 DISTBUILD=$(DISTNAME)
 DISTTAR=../$(DISTNAME).tar
index f7d2d0c..73ffb68 100644 (file)
@@ -110,7 +110,7 @@ for my $sect (keys %conf) {
   if ($conf{$sect} && keys %{$conf{$sect}}) {
     push @cfg, "[$sect]";
     for my $key (sort keys %{$conf{$sect}}) {
-      push @cfg, "$key=$conf{$section}{$key}";
+      push @cfg, "$key=$conf{$sect}{$key}";
     }
     push @cfg, "";
   }
index a4751b1..58809b9 100644 (file)
@@ -51,6 +51,12 @@ sub purchase_actions {
   return;
 }
 
+sub order_mail_actions {
+  my ($class, $acts, $order, $items, $products, $state, $cfg) = @_;
+
+  return ();
+}
+
 sub base_tags {
   my ($class, $articles, $acts, $article, $embedded, $cfg) = @_;
 
index 65e7545..9d9da20 100644 (file)
@@ -1191,6 +1191,7 @@ sub save {
   my %errors;
   $self->validate_old($article, \%data, $articles, \%errors)
     or return $self->edit_form($req, $article, $articles, undef, \%errors);
+  $self->save_thumbnail($cgi, $article, \%data);
   $self->fill_old_data($req, $article, \%data);
   if (exists $article->{template} &&
       $article->{template} =~ m|\.\.|) {
index fb663e7..45b9113 100644 (file)
@@ -7,10 +7,15 @@ use vars qw(@ISA @EXPORT_OK);
 use Constants qw/:shop/;
 use BSE::Util::SQL qw(now_sqldate);
 use BSE::Custom;
+use BSE::Util::Tags;
+use Carp 'confess';
 
 # returns a list of tags which display the cart details
 sub shop_cart_tags {
-  my ($acts, $cart, $cart_prods, $session, $q) = @_;
+  my ($acts, $cart, $cart_prods, $session, $q, $cfg, $stage) = @_;
+
+  $cfg or confess "No config";
+  $cfg->isa("BSE::Cfg") or confess "Not a config";
 
   my $item_index;
   my $option_index;
@@ -23,6 +28,7 @@ sub shop_cart_tags {
 
   return
     (
+     BSE::Util::Tags->basic($acts, $q, $cfg),
      ifUser => sub { $user },
      user => sub { CGI::escapeHTML($user ? $user->{$_[0]} : '') },
      iterate_items_reset => sub { $item_index = -1 },
@@ -44,7 +50,8 @@ sub shop_cart_tags {
        $cart->[$item_index]{units} * $cart_prods->[$item_index]{$what};
      },
      index => sub { $item_index },
-     total => sub { total($cart, $cart_prods, $session->{custom}) },
+     total => 
+     sub { total($cart, $cart_prods, $session->{custom}, $cfg, $stage) },
      count => sub { scalar @$cart },
      iterate_options_reset => sub { $option_index = -1 },
      iterate_options => sub { ++$option_index < @options },
@@ -95,13 +102,13 @@ sub nice_options {
 *shop_nice_options = \&nice_options;
 
 sub total {
-  my ($cart, $products, $state) = @_;
+  my ($cart, $products, $state, $cfg, $stage) = @_;
 
   my $total = 0;
   for my $item (@$cart) {
     $total += $item->{units} * $item->{price};
   }
-  $total += BSE::Custom->total_extras($cart, $products, $state);
+  $total += BSE::Custom->total_extras($cart, $products, $state, $cfg, $stage);
 
   return $total;
 }
@@ -243,12 +250,12 @@ sub basic_tags {
 
   return 
     (
-     money =>
-     sub {
-       my ($func, $args) = split ' ', $_[0], 2;
-       $acts->{$func} || return "<: money $_[0] :>";
-       return sprintf("%.02f", $acts->{$func}->($args)/100);
-     },
+#       money =>
+#       sub {
+#         my ($func, $args) = split ' ', $_[0], 2;
+#         $acts->{$func} || return "<: money $_[0] :>";
+#         return sprintf("%.02f", $acts->{$func}->($args)/100);
+#       },
     );
 }
 
index 9b63427..d5942c3 100755 (executable)
@@ -172,7 +172,8 @@ sub show_cart {
     (
      BSE::Custom->cart_actions(\%acts, \@cart, \@cart_prods, \%custom_state, 
                               $cfg),
-     shop_cart_tags(\%acts, \@cart, \@cart_prods, \%session, $CGI::Q),
+     shop_cart_tags(\%acts, \@cart, \@cart_prods, \%session, $CGI::Q, $cfg,
+                   'cart'),
      basic_tags(\%acts),
      msg => $msg,
     );
@@ -272,7 +273,8 @@ sub checkout {
   my %acts;
   %acts =
     (
-     shop_cart_tags(\%acts, \@cart, \@cart_prods, \%session, $CGI::Q),
+     shop_cart_tags(\%acts, \@cart, \@cart_prods, \%session, $CGI::Q, $cfg,
+                  'checkout'),
      basic_tags(\%acts),
      message => sub { $message },
      old => sub { CGI::escapeHTML($olddata ? param($_[0]) : 
@@ -310,7 +312,8 @@ sub checkout_confirm {
   %acts =
     (
      order => sub { CGI::escapeHTML($order{$_[0]}) },
-     shop_cart_tags(\%acts, \@cart, \@cart_prods, \%session, $CGI::Q),
+     shop_cart_tags(\%acts, \@cart, \@cart_prods, \%session, $CGI::Q, $cfg,
+                   'confirm'),
      basic_tags(\%acts),
      old => 
      sub { 
@@ -425,7 +428,7 @@ sub prePurchase {
   }
 
   $order{total} += BSE::Custom->total_extras(\@cart, \@products, 
-                                            $session{custom}, $cfg);
+                                            $session{custom}, $cfg, 'final');
   ++$session{changed};
   # blank anything else
   for my $column (@columns) {
@@ -632,8 +635,6 @@ sub purchase {
   }
 
   $order{orderDate} = $today;
-  $order{total} += BSE::Custom->total_extras(\@cart, \@products, 
-                                            $session{custom}, $cfg);
   $order{paymentType} = $paymentType;
   ++$session{changed};
 
@@ -663,6 +664,9 @@ sub purchase {
     return checkout($@, 1);
   }
 
+  $order{total} += BSE::Custom->total_extras(\@cart, \@products, 
+                                            $session{custom}, $cfg, 'final');
+
   # load up the database
   my @data = @order{@columns};
   shift @data; # lose the dummy id
@@ -755,7 +759,8 @@ sub send_order {
   %acts =
     (
      %extras,
-
+     BSE::Custom->order_mail_actions(\%acts, $order, $items, $products, 
+                                    $session{custom}, $cfg),
      BSE::Util::Tags->static(\%acts, $cfg),
      iterate_items_reset => sub { $item_index = -1; },
      iterate_items => 
@@ -775,12 +780,6 @@ sub send_order {
      sub {
        $items->[$item_index]{units} * $items->[$item_index]{$_[0]};
      },
-     money =>
-     sub {
-       my ($func, $args) = split ' ', $_[0], 2;
-       $acts{$func} || return "<: money $_[0] :>";
-       return sprintf("%.02f", $acts{$func}->($args)/100);
-     },
      _format =>
      sub {
        my ($value, $fmt) = @_;
index 152bea9..ee3438d 100644 (file)
@@ -10,6 +10,33 @@ Maybe I'll add some other bits here.
 
 =head1 CHANGES
 
+=head2 0.12_11
+
+=over
+
+=item *
+
+thumbnails are now saved when editing an existing article
+
+=item *
+
+the code to save keys to config sections which didn't already exist
+was broken
+
+=item *
+
+the total_extras custom hook now takes two extra parameters, the
+config object and a "stage" of processing, either "cart", "checkout",
+"confirm" or "final".
+
+=item *
+
+new customization hook order_mail_actions($order, $items, $products,
+$state, $cfg) for adding extra tags to the confirmation and order
+emails.
+
+=back
+
 =head2 0.12_10
 
 =over