pero solo en un método en CGI-APP se me presenta un problema, que al imprimir el contenido de esa sesión observo unos hash extraños...
Esta es mi función de agregar.
Using perl Syntax Highlighting
- sub cart_add{
- my $self= shift;
- my $dbh = $self->dbh;
- my $q = $self->query();
- my $item = MyApp::Db::Stock::Item->new($dbh);
- $item->retrieve($q->param('item'));
- my $total = $self->session->param('total_cesta') + $item->{'data'}->{'price'};
- my $cesta = $self->session->param('cart');
- #die Dumper $item->{'data'};
- if ( defined( $cesta->{ $item->{'data'}->{'item_id'} } ) ){
- $cesta->{ $item->{'data'}->{'item_id'} }->{'cant'}++;
- }else{
- my $h = {
- 'id' => $item->{'data'}->{'item_id'},
- 'name' => $item->{'data'}->{'name'},
- 'price' => $item->{'data'}->{'price'},
- 'cant' => 1
- };
- $cesta->{ $item->{'data'}->{'item_id'} } = $h;
- }
- $self->session->param( total_cesta => $total );
- $self->session->param( cart => $cesta );
- my $items = $self->session->param('cart') ;
- #die Dumper $items;
- $self->redirect("shoppingcart.pl?mode=display");
- }
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
Este es el código de display
Using perl Syntax Highlighting
- sub cart_display{
- my $self=shift;
- my $items = $self->session->param('cart') ;
- my @items2;
- my $dbh = $self->dbh;
- my $q = $self->query();
- my $system = MyApp::Db::System->new($dbh);
- $system->retrieve(1);
- my $language = $self->current_language;
- my $template = $system->{'data'}->{'template'};
- die Dumper $items;
- foreach my $it (%$items){
- my $item = MyApp::Db::Stock::Item->new($dbh);
- #die Dumper $it;
- if( $item->retrieve($items->{$it}->{'id'})){
- $items->{$it}->{'thumb'} = $item->{data}->{thumb};
- push @items2, $items->{$it}
- }
- }
- my $vars = {
- items => \@items2,
- total => $self->session->param('total_cesta') ,
- url_site => $self->cfg('site_url'),
- url_template => "templates/"."$language/$template"
- };
- my $c = $self->tt_process('templates/'.$self->current_language.'/'.$self->cfg('template_name').'/cart_display.html',$vars);
- die Dumper $items;
- # die Dumper $vars;
- $self->display_site($$c);
- }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Aquí el Dumper que tengo en la línea 12 me arroja esto:
- $VAR1 = { '7' => { 'name' => 'Bolso 5028', 'id' => '7', 'price' => 0, 'cant' => 1 } };
y en el dumper de la línea 34 me arroja algo así:
- $VAR1 = { '6' => { 'name' => 'Bolso 5026', 'id' => '6', 'price' => 0, 'cant' => 1, 'thumb' => 'default.jpg' }, 'HASH(0x2960c58)' => {} };
lo único que hago es actualizar la página y ya veo ese hash, y entre más productos adicione más de esos anónimos me salen...