$PRICE_ID_VALIABLE = Trim($PRICE_ID_VALIABLE); if (strlen($PRICE_ID_VALIABLE) <= 0) { $PRICE_ID_VALIABLE = "PRICE_ID"; } if (strlen($BASKET_PAGE_TEMPLATE) <= 0) { $BASKET_PAGE_TEMPLATE = "basket.php"; } $CACHE_TIME = IntVal($CACHE_TIME); $bDisplayPanel = $DISPLAY_PANEL == "Y" ? True : False; function UNI_SECTION_MakeRealPath($template, $ar) { return str_replace("//", "/", str_replace("#SITE_DIR#", SITE_DIR, str_replace("#SERVER_NAME#", SITE_SERVER_NAME, str_replace("#ID#", $ar["ID"], str_replace("#IBLOCK_ID#", $ar["IBLOCK_ID"], $template))))); } if (($_REQUEST[$ACTION_VALIABLE] == "ADD2BASKET" || $_REQUEST[$ACTION_VALIABLE] == "BUY") && IntVal($_REQUEST[$PRICE_ID_VALIABLE]) > 0) { if (CModule::IncludeModule("sale") && CModule::IncludeModule("catalog")) { Add2Basket($_REQUEST[$PRICE_ID_VALIABLE]); if ($_REQUEST[$ACTION_VALIABLE] == "BUY") { LocalRedirect($BASKET_PAGE_TEMPLATE); } else { LocalRedirect(UNI_SECTION_MakeRealPath($LIST_PAGE_TEMPLATE, array("IBLOCK_ID" => $IBLOCK_ID, "ID" => $ID))); } } } $cache = new CPHPCache(); $cache_id = "iblock_uni_section_" . $IBLOCK_ID . "_" . $ID . "_" . $SHOW_HEADER . "_" . $SHOW_SECTIONS . "_" . $SHOW_SECTIONS_EXT . "_" . $SHOW_ITEMS . "_" . $SECTION_COLUMNS_COUNT . "_" . $PRICE_TYPE_OLD . "_" . $PRICE_TYPE_NEW . "_" . $LIST_PAGE_TEMPLATE . "_" . $ITEMS_LIST_COUNT . "_" . $ACTION_VALIABLE . "_" . $PRICE_ID_VALIABLE . "_" . $BASKET_PAGE_TEMPLATE . "_" . $DETAIL_PAGE_TEMPLATE . "_" . SITE_ID . "_" . CDBResult::NavStringForCache($ITEMS_LIST_COUNT); if ($CACHE_TIME > 0 && $cache->InitCache($CACHE_TIME, $cache_id, "/" . SITE_ID . "/catalog/uni_section.php/")) { extract($cache->GetVars()); if ($bDisplayPanel) { CIBlock::ShowPanel($IBLOCK_ID, 0, $ID, $IBLOCK_TYPE_ID); } $GLOBALS["APPLICATION"]->SetTitle($NAME);
Processing of the received parameters *************************************************************************/ $arrPROPERTY_LINK_CODE = is_array($arrPROPERTY_LINK_CODE) ? $arrPROPERTY_LINK_CODE : array(); $PAGE_LINK_ELEMENT_COUNT = intval($PAGE_LINK_ELEMENT_COUNT); $bDisplayPanel = $DISPLAY_PANEL == "Y" ? True : False; if (!(CModule::IncludeModule("sale") && CModule::IncludeModule("catalog"))) { $LINK_PRICE_CODE = ""; } /************************************************************************* Processing of the Buy link *************************************************************************/ if (($_REQUEST["action"] == "ADD_TO_BASKET" || $_REQUEST["action"] == "BUY") && IntVal($_REQUEST["price_id"]) > 0) { if ($_REQUEST["link"] == "N") { $arRewriteFields = array("DETAIL_PAGE_URL" => ""); } Add2Basket($_REQUEST["price_id"], 1, $arRewriteFields); if ($_REQUEST["action"] == "BUY") { LocalRedirect($BASKET_URL); } else { LocalRedirect($APPLICATION->GetCurPageParam("", array("price_id", "action", "link"))); } } /************************************************************************* Work with cache *************************************************************************/ $CACHE_ID = SITE_ID . "|" . __FILE__ . md5(serialize($arParams) . $USER->GetGroups() . CDBResult::NavStringForCache($PAGE_LINK_ELEMENT_COUNT)); $obCache = new CPHPCache(); if ($obCache->InitCache($CACHE_TIME, $CACHE_ID, "/")) { $arVars = $obCache->GetVars(); $ELEMENT_NAME = $arVars["ELEMENT_NAME"]; } else {
foreach ($_REQUEST["ID"] as $id) { switch ($action) { case "COMPARE": $_SESSION[$NAME][$IBLOCK_ID][$id] = $id; break; case "DELETE_FROM_COMPARE_LIST": unset($_SESSION[$NAME][$IBLOCK_ID][$id]); break; } } } /************************************************************************* Processing of the links "Buy" and "Add to basket" *************************************************************************/ if (($_REQUEST["action"] == "ADD_TO_BASKET" || $_REQUEST["action"] == "BUY") && IntVal($_REQUEST["price_id"]) > 0) { Add2Basket($_REQUEST["price_id"]); if ($_REQUEST["action"] == "BUY") { LocalRedirect($BASKET_URL); } else { LocalRedirect($APPLICATION->GetCurPageParam("", array("price_id", "action"))); } } $arrCompareList = $_SESSION[$NAME][$IBLOCK_ID]; // array for storing IDs of the lements taht are being compared if (is_array($arrCompareList) && count($arrCompareList) > 0) { /************************************************************************* Work with cache *************************************************************************/ $CACHE_ID = SITE_ID . "|" . __FILE__ . "|" . md5(serialize($arParams) . "|" . serialize($arrCompareList) . "|" . $USER->GetGroups()); $obCache = new CPHPCache(); if ($obCache->StartDataCache($CACHE_TIME, $CACHE_ID, "/")) {
public function addProduct(CartProductInterface $product, $quantity) { $product = $this->create_product($product); Add2Basket($product->price_id(), $quantity, [], []); }