more session related bug fixes

This commit is contained in:
JT Smith 2006-01-13 21:14:23 +00:00
parent 30c3d8815d
commit 6779353b85
5 changed files with 34 additions and 29 deletions

View file

@ -4,13 +4,14 @@ use strict;
#-------------------------------------------------------------------
sub setCommerceSetting {
my $session = shift;
my ($entry);
$entry = shift;
$self->session->db->write("delete from commerceSettings where ".
"namespace=".$self->session->db->quote($entry->{namespace})." and ".
"type=".$self->session->db->quote($entry->{type})." and fieldName=".$self->session->db->quote($entry->{fieldName}));
$self->session->db->write("insert into commerceSettings (namespace, type, fieldName, fieldValue) values ".
"(".$self->session->db->quote($entry->{namespace}).",".$self->session->db->quote($entry->{type}).",".$self->session->db->quote($entry->{fieldName}).",".$self->session->db->quote($entry->{fieldValue}).")");
$session->db->write("delete from commerceSettings where ".
"namespace=".$session->db->quote($entry->{namespace})." and ".
"type=".$session->db->quote($entry->{type})." and fieldName=".$session->db->quote($entry->{fieldName}));
$session->db->write("insert into commerceSettings (namespace, type, fieldName, fieldValue) values ".
"(".$session->db->quote($entry->{namespace}).",".$session->db->quote($entry->{type}).",".$session->db->quote($entry->{fieldName}).",".$session->db->quote($entry->{fieldValue}).")");
}
1;

View file

@ -45,7 +45,7 @@ sub new {
$class = shift;
$variantId = shift;
$product = WebGUI::Product->getByVariantId($variantId);
$product = WebGUI::Product->getByVariantId($session,$variantId);
my $variant = $product->getVariant($variantId);
my %parameters = map {split(/\./, $_)} split(/,/, $variant->{composition});
my $composition = join(', ',map {$product->getParameter($_)->{name} .': '. $product->getOption($parameters{$_})->{value}} keys (%parameters));

View file

@ -80,7 +80,7 @@ sub create {
my $session = shift;
my $params = shift;
$params->{databaseLinkId} = "new";
my $Id = $session->db->setRow("databaseLink","databaseLinkId",$params);
my $id = $session->db->setRow("databaseLink","databaseLinkId",$params);
return $class->new($session,$id);
}
@ -110,7 +110,7 @@ sub disconnect {
my ($self, $value);
$self = shift;
$value = shift;
if (defined $self>{_dbh}) {
if (defined $self->{_dbh}) {
$self->{_dbh}->disconnect() unless ($self->getId eq "0");
}
undef $self;
@ -138,7 +138,7 @@ sub db {
return $self->{_dbh};
} elsif ($dsn =~ /\DBI\:\w+\:\w+/i) {
eval{
$self->{_dbh} = WebGUI::SQL->connect($session,$dsn,$username,$identifier);
$self->{_dbh} = WebGUI::SQL->connect($self->session,$dsn,$username,$identifier);
};
if ($@) {
$self->session->errorHandler->warn("DatabaseLink [".$self->getId."] ".$@);
@ -194,7 +194,7 @@ A reference to the current session.
sub getList {
my $session = shift;
my $list = $session->db->buildHashRef("select databaseLinkId, title from databaseLink order by title");
my $i18n = WebGUI::International->new($self->session);
my $i18n = WebGUI::International->new($session);
$list->{'0'} = $i18n->get(1076);
return $list;
}
@ -220,18 +220,19 @@ sub new {
my ($class, $databaseLinkId, %databaseLink);
tie %databaseLink, 'Tie::CPHash';
$class = shift;
my $session = shift;
$databaseLinkId = shift;
unless ($databaseLinkId eq "") {
if ($databaseLinkId eq "0") {
%databaseLink = (
databaseLinkId=>"0",
DSN=>$self->session->config->get("dsn"),
username=>$self->session->config->get("dbuser"),
identifier=>$self->session->config->get("dbpass"),
DSN=>$session->config->get("dsn"),
username=>$session->config->get("dbuser"),
identifier=>$session->config->get("dbpass"),
title=>"WebGUI Database"
);
} else {
%databaseLink = $self->session->db->quickHash("select * from databaseLink where databaseLinkId=".$self->session->db->quote($databaseLinkId));
%databaseLink = $session->db->quickHash("select * from databaseLink where databaseLinkId=".$session->db->quote($databaseLinkId));
}
}
return undef unless $databaseLink{databaseLinkId};

View file

@ -41,7 +41,7 @@ sub www_deleteProductParameterOption {
return $session->privilege->insufficient unless ($session->user->isInGroup(14));
WebGUI::Product->getByOptionId($optionId)->deleteOption($optionId);
WebGUI::Product->getByOptionId($session,$optionId)->deleteOption($optionId);
return WebGUI::Operation::execute('manageProduct');
}
@ -53,7 +53,7 @@ sub www_deleteProductParameter {
return $session->privilege->insufficient unless ($session->user->isInGroup(14));
WebGUI::Product->getByParameterId($parameterId)->deleteParameter($parameterId);
WebGUI::Product->getByParameterId($session,$parameterId)->deleteParameter($parameterId);
return WebGUI::Operation::execute('manageProduct');
}
@ -191,7 +191,7 @@ sub www_editProductParameter {
$productId = $session->form->process("productId");
unless ($parameterId eq 'new') {
$product = WebGUI::Product->getByParameterId($parameterId);
$product = WebGUI::Product->getByParameterId($session,$parameterId);
$parameter = $product->getParameter($parameterId);
$productId = $product->get('productId');
}
@ -275,7 +275,7 @@ sub www_editProductParameterOption {
$optionId = $session->form->process("optionId");
unless ($optionId eq 'new') {
$option = WebGUI::Product->getByOptionId($optionId)->getOption($optionId);
$option = WebGUI::Product->getByOptionId($session,$optionId)->getOption($optionId);
}
$f = WebGUI::HTMLForm->new($session);
@ -342,7 +342,7 @@ sub www_editProductParameterOptionSave {
return '<ul><li>'.join('</li><li>', @error).'</li></ul><br />'.WebGUI::Operation::execute('editProduct') if (@error);
$product = WebGUI::Product->getByParameterId($session->form->process("parameterId"));
$product = WebGUI::Product->getByParameterId($session,$session->form->process("parameterId"));
$optionId = $session->form->process("optionId");
$optionId = $product->addOptionToParameter($session->form->process("parameterId")) if ($optionId eq 'new');
$product->setOption($optionId, {
@ -365,7 +365,7 @@ sub www_editProductVariant {
$i18n = WebGUI::International->new($session, "ProductManager");
$variantId = $session->form->process("variantId");
$variant = WebGUI::Product->getByVariantId($variantId)->getVariant($variantId);
$variant = WebGUI::Product->getByVariantId($session,$variantId)->getVariant($variantId);
$f = WebGUI::HTMLForm->new($session);
$f->hidden(
@ -416,7 +416,7 @@ my $variantId = $session->form->process("variantId");
return $session->privilege->insufficient unless ($session->user->isInGroup(14));
WebGUI::Product->getByVariantId($variantId)->setVariant($variantId, $session{form});
WebGUI::Product->getByVariantId($session,$variantId)->setVariant($variantId, $session{form});
return WebGUI::Operation::execute('listProductVariants');
}

View file

@ -129,37 +129,40 @@ sub getByOptionId {
my ($class, $optionId, $productId);
$class = shift;
my $session = shift;
$optionId = shift;
($productId) = $self->session->db->quickArray("select productId from productParameters as t1, productParameterOptions as t2 ".
"where t1.parameterId=t2.parameterId and t2.optionId=".$self->session->db->quote($optionId));
($productId) = $session->db->quickArray("select productId from productParameters as t1, productParameterOptions as t2 ".
"where t1.parameterId=t2.parameterId and t2.optionId=".$session->db->quote($optionId));
return undef unless ($productId);
return WebGUI::Product->new($self->session,$productId);
return WebGUI::Product->new($session,$productId);
}
#-------------------------------------------------------------------
sub getByParameterId {
my ($class, $parameterId, $productId);
$class = shift;
my $session = shift;
$parameterId = shift;
($productId) = $self->session->db->quickArray("select productId from productParameters where parameterId=".$self->session->db->quote($parameterId));
($productId) = $session->db->quickArray("select productId from productParameters where parameterId=".$session->db->quote($parameterId));
return WebGUI::Product->new($self->session,$productId);
return WebGUI::Product->new($session,$productId);
}
#-------------------------------------------------------------------
sub getByVariantId {
my ($class, $productId, $variantId);
$class = shift;
my $session = shift;
$variantId = shift;
($productId) = $self->session->db->quickArray("select productId from productVariants where variantId=".$self->session->db->quote($variantId));
($productId) = $session->db->quickArray("select productId from productVariants where variantId=".$session->db->quote($variantId));
return WebGUI::Product->new($self->session,$productId);
return WebGUI::Product->new($session,$productId);
}
#-------------------------------------------------------------------
@ -210,7 +213,7 @@ sub new {
$properties = {productId => $productId};
$session->db->write("insert into products (productId) values (".$session->db->quote($productId).")");
} else {
$properties = $self->session->db->quickHashRef("select * from products where productId=".$session->db->quote($productId));
$properties = $session->db->quickHashRef("select * from products where productId=".$session->db->quote($productId));
# fetch parameters and options
$sth = $session->db->read("select opt.*, param.* from productParameters as param left join productParameterOptions as opt ".