public function action_cart() { /* Добавление товара в корзину $data: $item_id* - id товара $item_count* - кол-во товара $order_id - id заказа */ $methods['add_item'] = function ($data) { PC::debug($data, 'add item data'); $model_orders = new Model_Orders(); $materials = new Model_Material('groups'); // Добавление товара к существующему заказу if (isset($data['order_id'])) { PC::debug(1, 1); $res = $model_orders->addGood(Arr::get($data, 'order_id'), Arr::get($data, 'item_id'), Arr::get($data, 'item_count')); } else { PC::debug(2, 1); $item_count = Arr::get($data, 'item_count'); $res = $model_orders->newOrder(Arr::get($data, 'item_id'), $item_count); $new_count = $item_count; } $material = $materials->getMaterial(Arr::get($data, 'item_id')); $fields = $materials->getFields2(Arr::get($data, 'item_id'), TRUE); $catalog = new Model_Category('tree'); $categoryId = $materials->getTreeIdByMid(Arr::get($data, 'item_id')); $parents = $catalog->getParents($categoryId); $node = ''; foreach ($parents as $parent) { if ($parent['level'] > 1 && $parent['url'] != 'glavnaya') { $node .= $parent['url'] . '/'; } } $itemdata = $model_orders->getOrderCount(Arr::get($data, 'order_id'), Arr::get($data, 'item_id')); $item[Arr::get($data, 'item_id')] = array_merge($material, $fields); if (isset($new_count)) { $item[Arr::get($data, 'item_id')]['cnt'] = $new_count; } else { $item[Arr::get($data, 'item_id')]['cnt'] = $itemdata['cnt']; } $item[Arr::get($data, 'item_id')]['node'] = $node; return array('order_id' => $res, 'item' => $item); }; /* Удаление товара из корзины $data: $order_id* - id заказа $item_id* - id товара $item_count* - кол-во товара */ $methods['del_item'] = function ($data) { $model_orders = new Model_Orders(); extract($data); // Удаление товара из корзины $res = $model_orders->deleteItem(Arr::get($data, 'order_id'), Arr::get($data, 'item_id'), Arr::get($data, 'item_count')); return $res; }; /* Получение информации о заказе $data: $order_id* - id заказа */ $mathods['get_order'] = function ($data) { $model_orders = new Model_Orders(); $order_data = $model_orders->getOrder($data['order_id']); return $order_data; }; /* Удаление заказа $data: $order_id* - id заказа */ $mathods['del_order'] = function ($data) { PC::debug($data, 'del_order'); $model_orders = new Model_Orders(); $res = $model_orders->deleteOrder($data['order_id']); return $res; }; /* Получение информации о заказе $data: $order_id* - id заказа */ $methods['get_items'] = function ($data) { $model_orders = new Model_Orders(); //extract($data); $res = $model_orders->getOrder(Arr::get($data, 'order_id', '')); return $res; }; $data = Arr::get($_POST, 'data', ''); if ($data == '') { $data = Arr::get($_GET, 'data', ''); } extract(json_decode($data, true)); $res = false; if (isset($methods[$method])) { $res = $methods[$method]($data); PC::debug($res, 'Ajax: "' . $method . '"'); } exit(json_encode($res)); }