public function basket($templ_name = 'basket') { $templ_file = '/eshop/' . $templ_name . '.tpl'; $TEMPLATE = page::getTemplate($templ_file); if (!is_array($TEMPLATE)) { return page::errorNotFound('eshop.basket', $templ_file); } $fields = page::getFields('obj', $TEMPLATE['list']); $goods_list = basket::getGoodsData(); $list = ''; $num = $cost = 0; while (list($id, $goods) = each($goods_list)) { if ($obj = ormPages::get($id, 'goods')) { $num++; if (isset($fields['obj'])) { reset($fields['obj']); while (list($key, $val) = each($fields['obj'])) { if ($val != 'url' && $val != 'class' && $val != 'num') { page::assign('obj.' . $val, $obj->__get($val)); } } } page::assign('obj.num', $num); page::assign('class-first', $num == 1 ? 'first' : ''); page::assign('class-last', $num == basket::getCount() ? 'last' : ''); page::assign('class-odd', $num % 2 == 0 ? 'odd' : ''); page::assign('class-even', $num % 2 != 0 ? 'even' : ''); page::assign('class-third', $num % 3 == 0 ? 'third' : ''); page::assign('obj.id', $goods['goods_id']); page::assign('obj.cost', $goods['cost']); page::assign('obj.count', $goods['count']); page::assign('obj.url', $obj->url); $cost_all = $goods['cost'] * $goods['count']; page::assign('obj.cost_all', $cost_all); $cost += $cost_all; $list .= page::parse($TEMPLATE['list']); } } if (!empty($list)) { page::assign('cost', $cost); page::assign('list', $list); return page::parse($TEMPLATE['frame']); } else { return page::parse($TEMPLATE['empty']); } }
public function change_basketAction() { $goods_list = basket::getGoodsData(); $num = $cost = 0; while (list($id, $goods) = each($goods_list)) { if (isset($_POST['basket_check'][$id]) && isset($_POST['basket_count'][$id])) { $count = system::checkVar($_POST['basket_count'][$id], isInt); if (empty($count)) { $count = 1; } basket::changeGoods($id, $count); } else { basket::delGoods($id); } } if (system::POST('is_order', isBool)) { system::redirect('/eshop/order'); } else { system::redirect('/eshop/basket'); } }
public function save() { if (basket::getCount() > 0) { $order_id = $this->obj->save(); if ($order_id) { // Заказ сохранен добавляем в него товары $goods_list = basket::getGoodsData(); while (list($id, $goods) = each($goods_list)) { $obj = new ormObject(); $obj->setClass('eshop_goods'); $obj->setParent($order_id); $obj->goods_id = $goods['goods_id']; $obj->count = $goods['count']; $obj->cost = $goods['cost']; $obj->save(); } // Если нужно, отправляем сообщение для текущего статуса $this->sendStateMsg(); basket::clear(); return $order_id; } else { //echo $this->obj->getErrorListText(); // Произошла ошибка } } else { if (!empty($this->obj)) { // Изменяем данные заказа $order_id = $this->obj->save(); if ($order_id) { // Если нужно, отправляем сообщение для текущего статуса $this->sendStateMsg(); return $order_id; } else { //echo $this->obj->getErrorListText(); // Произошла ошибка } } else { // Корзина путая, создать новый заказ не возможно } } return false; }