Revision 471

Date:
2015/01/22 18:01:04
Author:
ahitrov
Revision Log:
Additional filters and calculations during basket merging
Files:

Legend:

 
Added
 
Removed
 
Modified
  • utf8/plugins/webshop/lib/webshop/Keeper.pm

     
    128 128 }
    129 129 @items = $keeper->get_documents (
    130 130 class => 'webshop::Basket',
    131 status => 1,
    131 status => [1,0],
    132 132 order_id=> 0,
    133 133 uid => $opts{uid},
    134 134 );
    135 my $total = 0;
    136 my $sum = 0;
    135 my ($basket_total, $basket_sum, $wishlist_total, $wishlist_sum) = (0,0,0,0);
    137 136 foreach my $item ( @items ) {
    138 $total += $item->number;
    139 $sum += $item->number * $item->price;
    137 if ( $item->status == 1 ) {
    138 $basket_total += $item->number;
    139 $basket_sum += $item->number * $item->price;
    140 } else {
    141 $wishlist_total += $item->number;
    142 $wishlist_sum += $item->number * $item->price;
    143 }
    140 144 }
    141 my @plugins = split (/[\ |\t]+/, $state->{plugins});
    142 if ( grep { $_ eq 'session' } @plugins && ref $session ) {
    143 $session->set ( basket_total => $total, basket_sum => $sum );
    144 }
    145 warn "Merge end\n" if $DEBUG;
    146 return ($total, $sum);
    145 warn "Merge end\n" if $DEBUG;
    146 return ($basket_total, $basket_sum, $wishlist_total, $wishlist_sum);
    147 147 }
    148 148
    149 149
  • utf8/plugins/webshop/lib/webshop/SQL/Basket.pm

     
    167 167 sub _session_filter {
    168 168 my ($self,%opts)=@_;
    169 169 return undef unless ( exists $opts{session} );
    170 return &SQL::Common::_generic_text_filter('d.session', $opts{session});
    170 if ( $opts{session} && !ref $opts{session} ) {
    171 my $que = '(d.session IN (?) AND (d.uid IS NULL OR d.uid = 0))';
    172 return $que, [$opts{session}];
    173 } else {
    174 return &SQL::Common::_generic_text_filter('d.session', $opts{session});
    175 }
    171 176 }
    172 177
    173 178 sub _item_filter {

Небольшая справка по веткам

cnddist – контейнер, в котором хранятся все дистрибутивы всех библиотек и программных пакетов, которые использовались при построении различных версий Contenido. Если какой-то библиотеки в данном хранилище нет, инсталлятор сделает попытку "подтянуть" ее с веба (например, с CPAN). Если библиотека слишком старая, есть очень большая вероятность, что ее там уже нет. Поэтому мы храним весь хлам от всех сборок. Если какой-то дистрибутив вдруг отсутствует в cnddist - напишите нам, мы положим его туда.

koi8 – отмирающая ветка, чей код, выдача и все внутренние библиотеки заточены на кодировку KOI8-R. Вносятся только те дополнения, которые касаются внешнего вида и функционала админки, баги ядра, обязательные обновления портов и мелочи, которые легко скопипастить. В дальнейшем планируется полная остановка поддержки по данной ветке.

utf8 – актуальная ветка, заточенная под UTF-8.

Внутри каждой ветки: core – исходники ядра; install – скрипт установки инсталляции; plugins – плагины; samples – "готовые к употреблению" проекты, которые можно поставить, запустить и посмотреть, как они работают.