From 0c177bacb10920bc0520d7259850b663dd21911d Mon Sep 17 00:00:00 2001 From: Matthew Wilson Date: Fri, 10 Mar 2006 19:59:43 +0000 Subject: [PATCH] a lot of session fixes... I'm sure this breaks something somewhere though. --- lib/WebGUI/Commerce/Item.pm | 13 +++++++++++++ lib/WebGUI/Commerce/Item/Event.pm | 2 +- lib/WebGUI/Commerce/Item/Product.pm | 2 +- lib/WebGUI/Commerce/Item/Subscription.pm | 2 +- lib/WebGUI/Commerce/Payment.pm | 5 +++-- lib/WebGUI/Commerce/Payment/ITransact.pm | 4 ++-- lib/WebGUI/Commerce/Shipping.pm | 6 +++--- lib/WebGUI/Commerce/Shipping/ByPrice.pm | 8 ++++---- lib/WebGUI/Commerce/Shipping/ByWeight.pm | 8 ++++---- lib/WebGUI/Commerce/Shipping/PerTransaction.pm | 12 ++++++------ 10 files changed, 38 insertions(+), 24 deletions(-) diff --git a/lib/WebGUI/Commerce/Item.pm b/lib/WebGUI/Commerce/Item.pm index 8f139ef6e..10381a11a 100644 --- a/lib/WebGUI/Commerce/Item.pm +++ b/lib/WebGUI/Commerce/Item.pm @@ -192,6 +192,19 @@ sub price { #------------------------------------------------------------------- +=head2 session ( ) + +Returns a reference to the current session. + +=cut + +sub session { + my $self = shift; + return $self->{_session}; +} + +#------------------------------------------------------------------- + =head2 type ( ) Returns the type (namespace) of the item. diff --git a/lib/WebGUI/Commerce/Item/Event.pm b/lib/WebGUI/Commerce/Item/Event.pm index dc524e010..0a886ea67 100644 --- a/lib/WebGUI/Commerce/Item/Event.pm +++ b/lib/WebGUI/Commerce/Item/Event.pm @@ -58,7 +58,7 @@ sub new { from EventManagementSystem_products as e, products as p where p.productId = e.productId and p.productId=".$session->db->quote($eventId)); - bless {_event => $eventData}, $class; + bless {_event => $eventData, _session => $session }, $class; } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Commerce/Item/Product.pm b/lib/WebGUI/Commerce/Item/Product.pm index 99864ba0d..dac87d34b 100755 --- a/lib/WebGUI/Commerce/Item/Product.pm +++ b/lib/WebGUI/Commerce/Item/Product.pm @@ -68,7 +68,7 @@ sub new { my %parameters = map {split(/\./, $_)} split(/,/, $variant->{composition}); my $composition = join(', ',map {$product->getParameter($_)->{name} .': '. $product->getOption($parameters{$_})->{value}} keys (%parameters)); - bless {_product => $product, _composition => $composition, _variant => $variant}, $class; + bless {_product => $product, _composition => $composition, _variant => $variant, _session => $session }, $class; } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Commerce/Item/Subscription.pm b/lib/WebGUI/Commerce/Item/Subscription.pm index 4d010ed55..1f181eecc 100644 --- a/lib/WebGUI/Commerce/Item/Subscription.pm +++ b/lib/WebGUI/Commerce/Item/Subscription.pm @@ -62,7 +62,7 @@ sub new { $type = shift; $subscription = WebGUI::Subscription->new($session,$subscriptionId); - bless {_subscription => $subscription, _subscriptionId => $subscriptionId}, $class; + bless {_session => $session, _subscription => $subscription, _subscriptionId => $subscriptionId}, $class; } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Commerce/Payment.pm b/lib/WebGUI/Commerce/Payment.pm index 5d59a525d..fc7aa6019 100644 --- a/lib/WebGUI/Commerce/Payment.pm +++ b/lib/WebGUI/Commerce/Payment.pm @@ -21,7 +21,7 @@ An abstract class for all payment plugins to extend. Invoking goes as follows: - $plugin = WebGUI::Commerce::Payment->init('MyPlugin'); + $plugin = WebGUI::Commerce::Payment->init($session,'MyPlugin'); =head1 METHODS @@ -291,7 +291,8 @@ sub load { $load = "use $cmd"; eval($load); $session->errorHandler->warn("Payment plugin failed to compile: $cmd.".$@) if($@); - $plugin = eval($cmd."->init"); + $plugin = eval($cmd.'->init($session)'); + $session->errorHandler->warn("Couldn't instantiate payment plugin: $cmd.".$@) if($@); return $plugin; } diff --git a/lib/WebGUI/Commerce/Payment/ITransact.pm b/lib/WebGUI/Commerce/Payment/ITransact.pm index fc83e09a9..eb6dd6013 100644 --- a/lib/WebGUI/Commerce/Payment/ITransact.pm +++ b/lib/WebGUI/Commerce/Payment/ITransact.pm @@ -588,8 +588,8 @@ sub errorCode { #------------------------------------------------------------------- sub name { - my ($session) = @_; - my $i18n = WebGUI::International->new($session, "CommercePaymentITransact"); + my ($self) = shift; + my $i18n = WebGUI::International->new($self->session, "CommercePaymentITransact"); return $i18n->get('module name'); } diff --git a/lib/WebGUI/Commerce/Shipping.pm b/lib/WebGUI/Commerce/Shipping.pm index 2546c3203..fa6c0df38 100644 --- a/lib/WebGUI/Commerce/Shipping.pm +++ b/lib/WebGUI/Commerce/Shipping.pm @@ -215,7 +215,7 @@ sub load { $load = "use $cmd"; eval($load); $session->errorHandler->warn("Shipping plugin failed to compile: $cmd.".$@) if($@); - $plugin = eval($cmd."->init"); + $plugin = eval($cmd.'->init($session)'); $session->errorHandler->warn("Couldn't instantiate shipping plugin: $cmd.".$@) if($@); return $plugin; } @@ -229,8 +229,8 @@ Returns the (display) name of the plugin. You must override this method. =cut sub name { - my ($session) = @_; - return $session->errorHandler->fatal("You must override the name method in the shipping plugin."); + my ($self) = @_; + return $self->session->errorHandler->fatal("You must override the name method in the shipping plugin."); } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Commerce/Shipping/ByPrice.pm b/lib/WebGUI/Commerce/Shipping/ByPrice.pm index d42039474..37698e29e 100644 --- a/lib/WebGUI/Commerce/Shipping/ByPrice.pm +++ b/lib/WebGUI/Commerce/Shipping/ByPrice.pm @@ -62,8 +62,8 @@ sub configurationForm { sub init { my ($class, $self); $class = shift; - - $self = $class->SUPER::init('ByPrice'); + my $session = shift; + $self = $class->SUPER::init($session,'ByPrice'); return $self; } @@ -77,8 +77,8 @@ Returns the internationalized name for this shipping plugin. =cut sub name { - my ($session) = @_; - my $i18n = WebGUI::International->new($session, 'CommerceShippingByPrice'); + my ($self) = @_; + my $i18n = WebGUI::International->new($self->session, 'CommerceShippingByPrice'); return $i18n->get('title'); } diff --git a/lib/WebGUI/Commerce/Shipping/ByWeight.pm b/lib/WebGUI/Commerce/Shipping/ByWeight.pm index e6313b0ae..67686935a 100644 --- a/lib/WebGUI/Commerce/Shipping/ByWeight.pm +++ b/lib/WebGUI/Commerce/Shipping/ByWeight.pm @@ -70,8 +70,8 @@ Constructor sub init { my ($class, $self); $class = shift; - - $self = $class->SUPER::init('ByWeight'); + my $session = shift; + $self = $class->SUPER::init($session,'ByWeight'); return $self; } @@ -85,8 +85,8 @@ Returns the internationalized name for this shipping plugin. =cut sub name { - my ($session) = @_; - my $i18n = WebGUI::International->new($session, 'CommerceShippingByWeight'); + my $self = shift; + my $i18n = WebGUI::International->new($self->session, 'CommerceShippingByWeight'); return $i18n->get('title'); } diff --git a/lib/WebGUI/Commerce/Shipping/PerTransaction.pm b/lib/WebGUI/Commerce/Shipping/PerTransaction.pm index d084a9745..ee5f867e0 100644 --- a/lib/WebGUI/Commerce/Shipping/PerTransaction.pm +++ b/lib/WebGUI/Commerce/Shipping/PerTransaction.pm @@ -16,7 +16,7 @@ use strict; #------------------------------------------------------------------- -=head2 calc ( $session ) +=head2 calc ( $self ) Calculate the shipping price for this plugin. @@ -33,7 +33,7 @@ sub calc { #------------------------------------------------------------------- -=head2 configurationForm ( $session ) +=head2 configurationForm ( $self ) Configuration form for this shipping method. @@ -65,8 +65,8 @@ Constructor sub init { my ($class, $self); $class = shift; - - $self = $class->SUPER::init('PerTransaction'); + my $session = shift; + $self = $class->SUPER::init($session,'PerTransaction'); return $self; } @@ -80,8 +80,8 @@ Returns the internationalized name for this shipping plugin. =cut sub name { - my ($session) = @_; - my $i18n = WebGUI::International->new($session, 'CommerceShippingPerTransaction'); + my ($self) = shift; + my $i18n = WebGUI::International->new($self->session, 'CommerceShippingPerTransaction'); return $i18n->get('title'); }