public static function load($gid) { $cfg = $GLOBALS['ACL_PERMS']; self::$isAdmin = $gid == 1; self::$rights = $cfg['rights']; self::$groups = $cfg['groups']; self::setGroup($gid); // select group }
public function DBCart() { //Удаляет товар из корзины if (isset($_POST['id_prod_for_remove'])) { unset($_SESSION['cart']['products'][$_POST['id_prod_for_remove']]); if (G::IsLogged() && !_acl::isAdmin()) { $this->db->StartTrans(); if (!$this->db->DeleteRowsFrom(_DB_PREFIX_ . "cart_product", array("id_cart = " . $_SESSION['cart']['id'], "id_product = " . $_POST['id_prod_for_remove']))) { $this->db->FailTrans(); return false; } $this->db->CompleteTrans(); $this->RecalcCart(); } return $_SESSION['cart']; } if (isset($_SESSION['cart']['id']) && !empty($_SESSION['cart']['products'])) { //Меняем готовность заказа (ready=0) при изменении количества товаров в корзине if (isset($_SESSION['cart']['promo']) && $_SESSION['cart']['promo'] != '' && $_SESSION['cart']['adm'] == 0) { $f['ready'] = 0; $this->db->Update(_DB_PREFIX_ . "cart", $f, "id_cart = " . $_SESSION['cart']['id']); unset($f); } // Обновить корзину в БД по id foreach ($_SESSION['cart']['products'] as $key => &$product) { $f['quantity'] = $product['quantity']; $f['price'] = $product['base_price']; $f['note'] = $product['note']; $this->db->StartTrans(); if (isset($product['id_cart_product'])) { if (!$this->db->Update(_DB_PREFIX_ . "cart_product", $f, "id_cart_product = " . $product['id_cart_product'])) { $this->db->FailTrans(); return false; } } else { $f['id_product'] = $key; $f['id_cart'] = $_SESSION['cart']['id']; if (!$this->db->Insert(_DB_PREFIX_ . "cart_product", $f)) { $this->db->FailTrans(); return false; } $product['id_cart_product'] = $this->db->GetLastId(); } $this->db->CompleteTrans(); } if (isset($product)) { return $product['id_cart_product']; } } else { // добавить корзину в БД и записать ее id в $_SESSION['cart']['id'] if (G::IsLogged() && !_acl::isAdmin()) { $f['id_user'] = $_SESSION['member']['id_user']; $this->db->StartTrans(); if (!$this->db->Insert(_DB_PREFIX_ . 'cart', $f)) { $this->db->FailTrans(); return false; //Если не удалось записать в базу } unset($f); $_SESSION['cart']['id'] = $this->db->GetLastId(); $this->db->CompleteTrans(); foreach ($_SESSION['cart']['products'] as $key => &$product) { $f['id_product'] = $key; $f['quantity'] = $product['quantity']; $f['price'] = $product['base_price']; $f['id_cart'] = $_SESSION['cart']['id']; $this->db->StartTrans(); if (!$this->db->Insert(_DB_PREFIX_ . "cart_product", $f)) { $this->db->FailTrans(); return false; } $product['id_cart_product'] = $this->db->GetLastId(); $this->db->CompleteTrans(); unset($f); } return $product['id_cart_product']; } return false; } }
} else { $_SESSION['search']['newsearch'] = 0; } if (isset($_SESSION['search']['query']) && $_SESSION['search']['query'] != '' && (!isset($query) || $query == '')) { $query = $_SESSION['search']['query']; } elseif (isset($query) && $query != '' || !isset($_SESSION['search']['query']) || $_SESSION['search']['query'] == '') { if (isset($query)) { $_SESSION['search']['query'] = $query; } else { $_SESSION['search']['query'] = $query = ''; } } if (isset($_POST['dropfilters'])) { unset($_SESSION['filters']); } if (!_acl::isAdmin()) { $where_arr['p.visible'] = 1; } // Категория для поиска ==================================== if (isset($_POST['search_category']) && $_POST['search_category'] != 0 || isset($_GET['search_category']) && $_GET['search_category'] != 0) { $_SESSION['search']['search_category'] = isset($_POST['search_category']) ? $_POST['search_category'] : $_GET['search_category']; $where_arr['customs'][] = 'cp.id_category IN ( SELECT id_category FROM ' . _DB_PREFIX_ . 'category c WHERE c.pid = ' . $_SESSION['search']['search_category'] . ' OR c.pid IN ( SELECT id_category FROM ' . _DB_PREFIX_ . 'category c WHERE c.pid = ' . $_SESSION['search']['search_category'] . ' ) )';
$sorting = array('value' => $sort_value); setcookie('sorting', json_encode(array($GLOBALS['CurrentController'] => $sorting)), time() + 3600 * 24 * 30, '/'); } elseif (!empty($sort) && isset($sort[$GLOBALS['CurrentController']])) { $sorting = $sort[$GLOBALS['CurrentController']]; } unset($sort_value, $sort); // Получаем список новостей if ($GLOBALS['CurrentController'] == 'news') { if (isset($GLOBALS['Rewrite'])) { $tpl->Assign('news', $News->GetNews(4, true)); } } else { $tpl->Assign('news', $News->GetNews(4)); } // Создание базового массива корзины if (G::IsLogged() && !_acl::isAdmin()) { if (!isset($_SESSION['cart']['id'])) { $Cart->LastClientCart(); } $Users->SetUserAdditionalInfo($_SESSION['member']['id_user']); $_SESSION['member']['favorites'] = $Users->fields['favorites']; $_SESSION['member']['waiting_list'] = $Users->fields['waiting_list']; $_SESSION['member']['contragent'] = $Users->fields['contragent']; $_SESSION['member']['ordered_prod'] = $Users->fields['ordered_prod']; } $Cart->RecalcCart(); if (G::IsLogged()) { $tpl->Assign('customer', $Customers->fields); $tpl->Assign('user_profile', $tpl->Parse($GLOBALS['PATH_tpl_global'] . 'user_profile.tpl')); } require $GLOBALS['PATH_core'] . 'controller.php';