function addOrder() { $date = mktime(); //текущая дата в UNIX формате $item_position = new Application_Models_Product(); //добавляем в массив корзины третий параметр цены товара, для сохранения в заказ // это нужно для того чтобы в последствии вывести детальную информацию о заказе. //Если оставить только id то информация может оказаться не верной, так как цены меняютмя. foreach ($_SESSION['cart'] as $product_id => $count) { $price = $item_position->getProductPrice($product_id); $product_positions[$product_id] = array("price" => $price, "count" => $count); } // сериализуем данные в строку для записи в бд $order_content = addslashes(serialize($product_positions)); // создаем новую модель корзины чтобы узнать сумму заказа $cart = new Application_Models_Cart(); $summ = $cart->getTotalSumm(); //формируем массив параметров SQL запроса $array = array("name" => $this->fio, "email" => $this->email, "phone" => $this->phone, "adres" => $this->adres, "date" => $date, "summ" => $summ, "order_content" => $order_content); // отдаем на обработку родительской функции build_query parent::build_query("INSERT INTO `order` SET", $array); $id = parent::insert_id(); //заказ номер id добавлен в базу if ($id) { $cart->clearCart(); } // если заказ успешно записан, то отчищаем корзину return $id; // возвращаем номер заказа }
function index() { $model = new Application_Models_Cart(); if ($_REQUEST['refresh']) { // если пользователь изменил данные в корзине $list_Item_Id = $_REQUEST; foreach ($list_Item_Id as $Item_Id => $new_count) { //пробегаем по массиву , находим пометки на удаление и на изменение количества $id = ""; if (substr($Item_Id, 0, 5) == "item_") { $id = substr($Item_Id, 5); $count = $new_count; } elseif (substr($Item_Id, 0, 4) == "del_") { $id = substr($Item_Id, 4); $count = 0; } if ($id) { $array_product_id[$id] = (int) $count; } } $model->refreshCart($array_product_id); // передаем в модель данные для обновления корзины Lib_SmalCart::getInstance()->setCartData(); // пересчитываем маленькую корзину header('Location: /cart'); exit; } if ($_REQUEST['clear']) { // если пользователь изменил данные в корзине $model->clearCart(); // передаем в модель данные для обновления корзины Lib_SmalCart::getInstance()->setCartData(); // пересчитываем маленькую корзину header('Location: /cart'); exit; } $big_cart = $model->printCart(); //выводим список позиций к заказу() $this->big_cart = $big_cart; //в представлении он будет доступен через переменную $big_cart $this->empty_cart = $model->isEmptyCart(); }