%PDF- %PDF-
Direktori : /proc/self/root/home/bitrix/www/bitrix/components/bitrix/catalog.compare.result/ |
Current File : //proc/self/root/home/bitrix/www/bitrix/components/bitrix/catalog.compare.result/component.php |
<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die(); /** @var CBitrixComponent $this */ /** @var array $arParams */ /** @var array $arResult */ /** @var string $componentPath */ /** @var string $componentName */ /** @var string $componentTemplate */ /** @global CDatabase $DB */ /** @global CUser $USER */ /** @global CMain $APPLICATION */ use Bitrix\Main, Bitrix\Main\Loader, Bitrix\Iblock\InheritedProperty\ElementValues, Bitrix\Iblock, Bitrix\Currency; $this->setFrameMode(false); if (!Loader::includeModule("iblock")) { ShowError(GetMessage("IBLOCK_MODULE_NOT_INSTALLED")); return; } /************************************************************************* Processing of received parameters *************************************************************************/ unset($arParams["IBLOCK_TYPE"]); //was used only for IBLOCK_ID setup with Editor $arParams["IBLOCK_ID"] = intval($arParams["IBLOCK_ID"]); $arParams["NAME"] = trim($arParams["NAME"]); if ($arParams["NAME"] == '') $arParams["NAME"] = "CATALOG_COMPARE_LIST"; if (strlen($arParams["ELEMENT_SORT_FIELD"])<=0) $arParams["ELEMENT_SORT_FIELD"]="sort"; if (!preg_match('/^(asc|desc|nulls)(,asc|,desc|,nulls){0,1}$/i', $arParams["ELEMENT_SORT_ORDER"])) $arParams["ELEMENT_SORT_ORDER"]="asc"; $arParams["DETAIL_URL"] = trim($arParams["DETAIL_URL"]); $arParams["BASKET_URL"] = trim($arParams["BASKET_URL"]); if ($arParams["BASKET_URL"] == '') $arParams["BASKET_URL"] = "/personal/basket.php"; $arParams["ACTION_VARIABLE"] = trim($arParams["ACTION_VARIABLE"]); if ($arParams["ACTION_VARIABLE"] == '' || !preg_match("/^[A-Za-z_][A-Za-z01-9_]*$/", $arParams["ACTION_VARIABLE"])) $arParams["ACTION_VARIABLE"] = "action"; $arParams["PRODUCT_ID_VARIABLE"] = trim($arParams["PRODUCT_ID_VARIABLE"]); if ($arParams["PRODUCT_ID_VARIABLE"] == '' || !preg_match("/^[A-Za-z_][A-Za-z01-9_]*$/", $arParams["PRODUCT_ID_VARIABLE"])) $arParams["PRODUCT_ID_VARIABLE"] = "id"; $arParams["SECTION_ID_VARIABLE"] = trim($arParams["SECTION_ID_VARIABLE"]); if ($arParams["SECTION_ID_VARIABLE"] == '' || !preg_match("/^[A-Za-z_][A-Za-z01-9_]*$/", $arParams["SECTION_ID_VARIABLE"])) $arParams["SECTION_ID_VARIABLE"] = "SECTION_ID"; if (!is_array($arParams["PROPERTY_CODE"])) $arParams["PROPERTY_CODE"] = array(); foreach($arParams["PROPERTY_CODE"] as $k=>$v) if ($v==="") unset($arParams["PROPERTY_CODE"][$k]); if (!is_array($arParams["FIELD_CODE"])) $arParams["FIELD_CODE"] = array(); foreach($arParams["FIELD_CODE"] as $k=>$v) if ($v==="") unset($arParams["FIELD_CODE"][$k]); if (!is_array($arParams["OFFERS_FIELD_CODE"])) $arParams["OFFERS_FIELD_CODE"] = array(); foreach($arParams["OFFERS_FIELD_CODE"] as $k=>$v) if ($v==="") unset($arParams["OFFERS_FIELD_CODE"][$k]); if (!is_array($arParams["OFFERS_PROPERTY_CODE"])) $arParams["OFFERS_PROPERTY_CODE"] = array(); foreach($arParams["OFFERS_PROPERTY_CODE"] as $k=>$v) if ($v==="") unset($arParams["OFFERS_PROPERTY_CODE"][$k]); if (!in_array("NAME", $arParams["FIELD_CODE"])) $arParams["FIELD_CODE"][]="NAME"; if (!is_array($arParams["PRICE_CODE"])) $arParams["PRICE_CODE"] = array(); $arParams["USE_PRICE_COUNT"] = $arParams["USE_PRICE_COUNT"]=="Y"; $arParams["SHOW_PRICE_COUNT"] = intval($arParams["SHOW_PRICE_COUNT"]); if ($arParams["SHOW_PRICE_COUNT"]<=0) $arParams["SHOW_PRICE_COUNT"]=1; $arParams["DISPLAY_ELEMENT_SELECT_BOX"] = $arParams["DISPLAY_ELEMENT_SELECT_BOX"]=="Y"; if (empty($arParams["ELEMENT_SORT_FIELD_BOX"])) $arParams["ELEMENT_SORT_FIELD_BOX"]="sort"; if (!preg_match('/^(asc|desc|nulls)(,asc|,desc|,nulls){0,1}$/i', $arParams["ELEMENT_SORT_ORDER_BOX"])) $arParams["ELEMENT_SORT_ORDER_BOX"]="asc"; if (empty($arParams["ELEMENT_SORT_FIELD_BOX2"])) $arParams["ELEMENT_SORT_FIELD_BOX2"] = "id"; if (!preg_match('/^(asc|desc|nulls)(,asc|,desc|,nulls){0,1}$/i', $arParams["ELEMENT_SORT_ORDER_BOX2"])) $arParams["ELEMENT_SORT_ORDER_BOX2"] = "desc"; if (empty($arParams['HIDE_NOT_AVAILABLE']) || $arParams['HIDE_NOT_AVAILABLE'] != 'Y') $arParams['HIDE_NOT_AVAILABLE'] = 'N'; $arParams["PRICE_VAT_INCLUDE"] = $arParams["PRICE_VAT_INCLUDE"] !== "N"; $arParams['CONVERT_CURRENCY'] = (isset($arParams['CONVERT_CURRENCY']) && 'Y' == $arParams['CONVERT_CURRENCY'] ? 'Y' : 'N'); $arParams['CURRENCY_ID'] = trim(strval($arParams['CURRENCY_ID'])); if ('' == $arParams['CURRENCY_ID']) $arParams['CONVERT_CURRENCY'] = 'N'; elseif ('N' == $arParams['CONVERT_CURRENCY']) $arParams['CURRENCY_ID'] = ''; $arResult = array(); if (!isset($_SESSION[$arParams["NAME"]])) $_SESSION[$arParams["NAME"]] = array(); if (!isset($_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]])) $_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]] = array(); /************************************************************************* Handling the Compare button *************************************************************************/ if (isset($_REQUEST[$arParams['ACTION_VARIABLE']])) { switch (ToUpper($_REQUEST[$arParams['ACTION_VARIABLE']])) { case "ADD_TO_COMPARE_LIST": case "ADD_TO_COMPARE_RESULT": if (isset($_REQUEST[$arParams['PRODUCT_ID_VARIABLE']])) { $successfulAction = true; $errorMessage = ''; $actionByAjax = (isset($_REQUEST['ajax_action']) && $_REQUEST['ajax_action'] == 'Y'); if (!isset($_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["ITEMS"])) $_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["ITEMS"] = array(); $productID = (int)$_REQUEST[$arParams['PRODUCT_ID_VARIABLE']]; if ($productID > 0 && !isset($_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["ITEMS"][$productID])) { $found = true; $arOffers = CIBlockPriceTools::GetOffersIBlock($arParams["IBLOCK_ID"]); $OFFERS_IBLOCK_ID = $arOffers ? $arOffers["OFFERS_IBLOCK_ID"]: 0; $arSelect = array( "ID", "IBLOCK_ID", "IBLOCK_SECTION_ID", "NAME", "DETAIL_PAGE_URL", ); $arFilter = array( "ID" => $productID, "IBLOCK_LID" => SITE_ID, "IBLOCK_ACTIVE" => "Y", "ACTIVE_DATE" => "Y", "ACTIVE" => "Y", "CHECK_PERMISSIONS" => "Y", "MIN_PERMISSION" => "R" ); $arFilter["IBLOCK_ID"] = ($OFFERS_IBLOCK_ID > 0 ? array($arParams["IBLOCK_ID"], $OFFERS_IBLOCK_ID) : $arParams["IBLOCK_ID"]); $rsElement = CIBlockElement::GetList(array(), $arFilter, false, false, $arSelect); $arElement = $rsElement->GetNext(); unset($rsElement); if (empty($arElement)) $found = false; if ($found) { if ($arElement['IBLOCK_ID'] == $OFFERS_IBLOCK_ID) { $rsMasterProperty = CIBlockElement::GetProperty($arElement["IBLOCK_ID"], $arElement["ID"], array(), array("ID" => $arOffers["OFFERS_PROPERTY_ID"], "EMPTY" => "N")); $arMasterProperty = $rsMasterProperty->Fetch(); unset($rsMasterProperty); if (empty($arMasterProperty)) $found = false; if ($found) { $arMasterProperty['VALUE'] = (int)$arMasterProperty['VALUE']; if ($arMasterProperty['VALUE'] <= 0) $found = false; } if ($found) { $rsMaster = CIBlockElement::GetList( array(), array( 'ID' => $arMasterProperty['VALUE'], 'IBLOCK_ID' => $arMasterProperty['LINK_IBLOCK_ID'], 'ACTIVE' => 'Y', ), false, false, $arSelect ); $rsMaster->SetUrlTemplates($arParams['DETAIL_URL']); $arMaster = $rsMaster->GetNext(); unset($rsMaster); if (empty($arMaster)) { $found = false; } else { $arMaster['NAME'] = $arElement['NAME']; $arElement = $arMaster; } unset($arMaster); } } } if ($found) { $sectionsList = array(); $sectionsIterator = Iblock\SectionElementTable::getList(array( 'select' => array('IBLOCK_SECTION_ID'), 'filter' => array('=IBLOCK_ELEMENT_ID' => $arElement['ID'], '=ADDITIONAL_PROPERTY_ID' => null) )); while ($section = $sectionsIterator->fetch()) { $sectionId = (int)$section['IBLOCK_SECTION_ID']; $sectionsList[$sectionId] = $sectionId; } unset($section, $sectionsIterator); $_SESSION[$arParams['NAME']][$arParams['IBLOCK_ID']]['ITEMS'][$productID] = array( 'ID' => $arElement['ID'], '~ID' => $arElement['~ID'], 'IBLOCK_ID' => $arElement['IBLOCK_ID'], '~IBLOCK_ID' => $arElement['~IBLOCK_ID'], 'IBLOCK_SECTION_ID' => $arElement['IBLOCK_SECTION_ID'], '~IBLOCK_SECTION_ID' => $arElement['~IBLOCK_SECTION_ID'], 'NAME' => $arElement['NAME'], '~NAME' => $arElement['~NAME'], 'DETAIL_PAGE_URL' => $arElement['DETAIL_PAGE_URL'], '~DETAIL_PAGE_URL' => $arElement['~DETAIL_PAGE_URL'], 'SECTIONS_LIST' => $sectionsList, 'PARENT_ID' => $productID, 'DELETE_URL' => htmlspecialcharsbx($APPLICATION->GetCurPageParam( $arParams['ACTION_VARIABLE']."=DELETE_FROM_COMPARE_RESULT&".$arParams['PRODUCT_ID_VARIABLE']."=".$productID, array($arParams['ACTION_VARIABLE'], $arParams['PRODUCT_ID_VARIABLE']) )) ); unset($sectionsList, $arElement); $resultCount = count($_SESSION[$arParams['NAME']][$arParams['IBLOCK_ID']]['ITEMS']); } else { $successfulAction = false; $errorMessage = GetMessage('CP_BCCR_ERR_MESS_PRODUCT_NOT_FOUND'); } } if ($actionByAjax) { if ($successfulAction) $addResult = array('STATUS' => 'OK', 'MESSAGE' => GetMessage('CP_BCCR_MESS_SUCCESSFUL_ADD_TO_COMPARE')); else $addResult = array('STATUS' => 'ERROR', 'MESSAGE' => $errorMessage); $APPLICATION->RestartBuffer(); header('Content-Type: application/json'); echo Main\Web\Json::encode($addResult); die(); } } break; case "DELETE_FROM_COMPARE_LIST": case "DELETE_FROM_COMPARE_RESULT": $arID = array(); if (isset($_REQUEST[$arParams['PRODUCT_ID_VARIABLE']])) { $arID = $_REQUEST[$arParams['PRODUCT_ID_VARIABLE']]; } elseif (isset($_REQUEST["ID"])) { $arID = $_REQUEST["ID"]; } if (!is_array($arID)) { $arID = array($arID); } if (!empty($arID)) { foreach($arID as $ID) { if (isset($_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["ITEMS"][$ID])) { unset($_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["ITEMS"][$ID]); } } unset($ID); } unset($arID); break; case "ADD_FEATURE": $arPF = array(); $arPR = array(); $arOF = array(); $arOP = array(); if (isset($_REQUEST['pf_code'])) { $arPF = $_REQUEST['pf_code']; if (!is_array($arPF)) $arPF = array($arPF); } if (isset($_REQUEST["pr_code"])) { $arPR = $_REQUEST["pr_code"]; if (!is_array($arPR)) $arPR = array($arPR); } if (isset($_REQUEST["of_code"])) { $arOF = $_REQUEST["of_code"]; if (!is_array($arOF)) $arOF = array($arOF); } if (isset($_REQUEST["op_code"])) { $arOP = $_REQUEST["op_code"]; if (!is_array($arOP)) $arOP = array($arOP); } if (!empty($arPF)) { foreach($arPF as $ID) { if (isset($_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DELETE_FIELD"][$ID])) unset($_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DELETE_FIELD"][$ID]); } unset($ID); } if (!empty($arPR)) { foreach($arPR as $ID) { if (isset($_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DELETE_PROP"][$ID])) unset($_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DELETE_PROP"][$ID]); } unset($ID); } if (!empty($arOF)) { foreach($arOF as $ID) { if (isset($_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DELETE_OFFER_FIELD"][$ID])) unset($_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DELETE_OFFER_FIELD"][$ID]); } unset($ID); } if (!empty($arOP)) { foreach($arOP as $ID) { if (isset($_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DELETE_OFFER_PROP"][$ID])) unset($_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DELETE_OFFER_PROP"][$ID]); } unset($ID); } unset($arOP, $arOF, $arPR, $arPF); break; case "DELETE_FEATURE": $arPF = array(); $arPR = array(); $arOF = array(); $arOP = array(); if (isset($_REQUEST['pf_code'])) { $arPF = $_REQUEST['pf_code']; if (!is_array($arPF)) $arPF = array($arPF); } if (isset($_REQUEST["pr_code"])) { $arPR = $_REQUEST["pr_code"]; if (!is_array($arPR)) $arPR = array($arPR); } if (isset($_REQUEST["of_code"])) { $arOF = $_REQUEST["of_code"]; if (!is_array($arOF)) $arOF = array($arOF); } if (isset($_REQUEST["op_code"])) { $arOP = $_REQUEST["op_code"]; if (!is_array($arOP)) $arOP = array($arOP); } if (!empty($arPF)) { if (!isset($_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DELETE_FIELD"])) $_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DELETE_FIELD"] = array(); foreach($arPF as $ID) $_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DELETE_FIELD"][$ID] = true; } if (!empty($arPR)) { if (!isset($_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DELETE_PROP"])) $_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DELETE_PROP"] = array(); foreach($arPR as $ID) $_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DELETE_PROP"][$ID] = true; } if (!empty($arOF)) { if (!isset($_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DELETE_OFFER_FIELD"])) $_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DELETE_OFFER_FIELD"] = array(); foreach($arOF as $ID) $_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DELETE_OFFER_FIELD"][$ID] = true; } if (!empty($arOP)) { if (!isset($_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DELETE_OFFER_PROP"])) $_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DELETE_OFFER_PROP"] = array(); foreach($arOP as $ID) $_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DELETE_OFFER_PROP"][$ID] = true; } unset($arOP, $arOF, $arPR, $arPF); break; } } if (!isset($_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DIFFERENT"])) $_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DIFFERENT"] = false; if (isset($_REQUEST["DIFFERENT"])) $_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DIFFERENT"] = $_REQUEST["DIFFERENT"]=="Y"; $arResult["DIFFERENT"] = $_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DIFFERENT"]; /************************************************************************* Processing of the Buy link *************************************************************************/ $strError = ""; if (isset($_REQUEST[$arParams["ACTION_VARIABLE"]]) && isset($_REQUEST[$arParams["PRODUCT_ID_VARIABLE"]])) { $action = strtoupper($_REQUEST[$arParams["ACTION_VARIABLE"]]); $productID = (int)$_REQUEST[$arParams["PRODUCT_ID_VARIABLE"]]; if (($action == "COMPARE_ADD2BASKET" || $action == "COMPARE_BUY") && $productID > 0) { if (Loader::includeModule("sale") && Loader::includeModule("catalog")) { $QUANTITY = 1; $product_properties = array(); if (is_array($arParams["OFFERS_CART_PROPERTIES"])) { foreach($arParams["OFFERS_CART_PROPERTIES"] as $i => $pid) if ($pid === "") unset($arParams["OFFERS_CART_PROPERTIES"][$i]); if (!empty($arParams["OFFERS_CART_PROPERTIES"])) { $product_properties = CIBlockPriceTools::GetOfferProperties( $productID, $arParams["IBLOCK_ID"], $arParams["OFFERS_CART_PROPERTIES"] ); } } if (Add2BasketByProductID($productID, $QUANTITY, $product_properties)) { if ($action == "COMPARE_BUY") LocalRedirect($arParams["BASKET_URL"]); else LocalRedirect($APPLICATION->GetCurPageParam("", array($arParams["PRODUCT_ID_VARIABLE"], $arParams["ACTION_VARIABLE"]))); } else { if ($ex = $APPLICATION->GetException()) $strError = $ex->GetString(); else $strError = GetMessage("CATALOG_ERROR2BASKET")."."; } } } } if (strlen($strError)>0) { ShowError($strError); return; } $arCompare = array(); if (isset($_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["ITEMS"])) $arCompare = $_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["ITEMS"]; if (!empty($arCompare) && is_array($arCompare)) { $fieldsRequired = array( 'NAME' => true ); $fieldsHidden = array( 'IBLOCK_TYPE_ID' => true, 'IBLOCK_CODE' => true, 'IBLOCK_NAME' => true, 'IBLOCK_EXTERNAL_ID' => true, 'SECTION_ID' => true, 'IBLOCK_SECTION_ID' => true ); $sessionFields = array( 'DELETE_FIELD', 'DELETE_PROP', 'DELETE_OFFER_FIELD', 'DELETE_OFFER_PROP' ); foreach ($sessionFields as &$fieldName) { if ( !isset($_SESSION[$arParams['NAME']][$arParams['IBLOCK_ID']][$fieldName]) || !is_array($_SESSION[$arParams['NAME']][$arParams['IBLOCK_ID']][$fieldName]) ) $_SESSION[$arParams['NAME']][$arParams['IBLOCK_ID']][$fieldName] = array(); } unset($fieldName, $sessionFields); $catalogIncluded = Loader::includeModule('catalog'); $arResult['PRICES'] = CIBlockPriceTools::GetCatalogPrices($arParams['IBLOCK_ID'], $arParams['PRICE_CODE']); $arResult['PRICES_ALLOW'] = CIBlockPriceTools::GetAllowCatalogPrices($arResult['PRICES']); $arConvertParams = array(); $basePrice = ''; if ($arParams['CONVERT_CURRENCY'] == 'Y') { $correct = false; if (Loader::includeModule('currency')) { $correct = Currency\CurrencyManager::isCurrencyExist($arParams['CURRENCY_ID']); $basePrice = Currency\CurrencyManager::getBaseCurrency(); } if ($correct) { $arConvertParams['CURRENCY_ID'] = $arParams['CURRENCY_ID']; } else { $arParams['CONVERT_CURRENCY'] = 'N'; $arParams['CURRENCY_ID'] = ''; } unset($correct); } $arResult['CONVERT_CURRENCY'] = $arConvertParams; $arResult['OFFERS_IBLOCK_ID'] = 0; $arResult['OFFERS_PROPERTY_ID'] = 0; $arOffers = CIBlockPriceTools::GetOffersIBlock($arParams["IBLOCK_ID"]); if (!empty($arOffers)) { $arResult["OFFERS_IBLOCK_ID"] = $arOffers["OFFERS_IBLOCK_ID"]; $arResult["OFFERS_PROPERTY_ID"] = $arOffers["OFFERS_PROPERTY_ID"]; } unset($arOffers); $arSelect = array( "ID", "IBLOCK_ID", "IBLOCK_SECTION_ID", "DETAIL_PAGE_URL", "PROPERTY_*", ); $arFilter = array( "ID" => array_keys($arCompare), "IBLOCK_LID" => SITE_ID, "IBLOCK_ACTIVE" => "Y", "ACTIVE_DATE" => "Y", "ACTIVE" => "Y", "CHECK_PERMISSIONS" => "Y", ); $arFilter["IBLOCK_ID"] = ( $arResult["OFFERS_IBLOCK_ID"] > 0 ? array($arParams["IBLOCK_ID"], $arResult["OFFERS_IBLOCK_ID"]) : $arParams["IBLOCK_ID"] ); $arPriceTypeID = array(); if (!$arParams["USE_PRICE_COUNT"]) { foreach($arResult["PRICES"] as &$value) { if (!$value['CAN_VIEW'] && !$value['CAN_BUY']) continue; $arSelect[] = $value["SELECT"]; $arFilter["CATALOG_SHOP_QUANTITY_".$value["ID"]] = $arParams["SHOW_PRICE_COUNT"]; } if (isset($value)) unset($value); } else { foreach($arResult["PRICES"] as &$value) { if (!$value['CAN_VIEW'] && !$value['CAN_BUY']) continue; $arPriceTypeID[] = $value["ID"]; } if (isset($value)) unset($value); } if (!empty($arParams["FIELD_CODE"])) $arSelect = array_merge($arSelect, $arParams["FIELD_CODE"]); if (!empty($arParams['OFFERS_FIELD_CODE'])) $arSelect = array_merge($arSelect, $arParams["OFFERS_FIELD_CODE"]); $arSelect = array_unique($arSelect); $arSort = array( $arParams["ELEMENT_SORT_FIELD"] => $arParams["ELEMENT_SORT_ORDER"], "ID" => "DESC", ); $currentPath = CHTTP::urlDeleteParams( $APPLICATION->GetCurPageParam(), array( $arParams['PRODUCT_ID_VARIABLE'], $arParams['ACTION_VARIABLE'], 'DIFFERENT', 'ID', 'op_code', 'of_code', 'pr_code', 'pf_code', 'ajax_action' ), array("delete_system_params" => true) ); $arResult['~COMPARE_URL_TEMPLATE'] = $currentPath.(stripos($currentPath, '?') === false ? '?' : '&'); $arResult['COMPARE_URL_TEMPLATE'] = htmlspecialcharsbx($arResult['~COMPARE_URL_TEMPLATE']); $rawCompareTemplateWithAction = $arResult['~COMPARE_URL_TEMPLATE'].$arParams['ACTION_VARIABLE']; $compareTemplateWithAction = $arResult['COMPARE_URL_TEMPLATE'].$arParams['ACTION_VARIABLE']; $arResult['~DELETE_FROM_COMPARE_URL_TEMPLATE'] = $rawCompareTemplateWithAction.'=DELETE_FROM_COMPARE_RESULT&ID=#ID#'; $arResult['BUY_URL_TEMPLATE'] = $compareTemplateWithAction.'=COMPARE_BUY&'.$arParams['PRODUCT_ID_VARIABLE'].'=#ID#'; $arResult['ADD_URL_TEMPLATE'] = $compareTemplateWithAction.'=COMPARE_ADD2BASKET&'.$arParams['PRODUCT_ID_VARIABLE'].'=#ID#'; $arResult['~DELETE_FEATURE_FIELD_TEMPLATE'] = $rawCompareTemplateWithAction.'=DELETE_FEATURE&pf_code=#CODE#'; $arResult['~ADD_FEATURE_FIELD_TEMPLATE'] = $rawCompareTemplateWithAction.'=ADD_FEATURE&pf_code=#CODE#'; $arResult['~DELETE_FEATURE_PROPERTY_TEMPLATE'] = $rawCompareTemplateWithAction.'=DELETE_FEATURE&pr_code=#CODE#'; $arResult['~ADD_FEATURE_PROPERTY_TEMPLATE'] = $rawCompareTemplateWithAction.'=ADD_FEATURE&pr_code=#CODE#'; $arResult['~DELETE_FEATURE_OF_FIELD_TEMPLATE'] = $rawCompareTemplateWithAction.'=DELETE_FEATURE&of_code=#CODE#'; $arResult['~ADD_FEATURE_OF_FIELD_TEMPLATE'] = $rawCompareTemplateWithAction.'=ADD_FEATURE&of_code=#CODE#'; $arResult['~DELETE_FEATURE_OF_PROPERTY_TEMPLATE'] = $rawCompareTemplateWithAction.'=DELETE_FEATURE&op_code=#CODE#'; $arResult['~ADD_FEATURE_OF_PROPERTY_TEMPLATE'] = $rawCompareTemplateWithAction.'=ADD_FEATURE&op_code=#CODE#'; unset($rawCompareTemplateWithAction, $compareTemplateWithAction, $currentPath); $arResult['DELETED_FIELDS'] = array(); $arResult['SHOW_FIELDS'] = array(); $arResult['DELETED_PROPERTIES'] = array(); $arResult['SHOW_PROPERTIES'] = array(); $arResult['DELETED_OFFER_FIELDS'] = array(); $arResult['SHOW_OFFER_FIELDS'] = array(); $arResult['DELETED_OFFER_PROPERTIES'] = array(); $arResult['SHOW_OFFER_PROPERTIES'] = array(); $arResult['EMPTY_FIELDS'] = array(); $arResult['EMPTY_PROPERTIES'] = array(); $arResult['EMPTY_OFFER_FIELDS'] = array(); $arResult['EMPTY_OFFER_PROPERTIES'] = array(); //EXECUTE $arResult['ITEMS'] = array(); $rsElements = CIBlockElement::GetList($arSort, $arFilter, false, false, $arSelect); $rsElements->SetUrlTemplates($arParams['DETAIL_URL']); while($obElement = $rsElements->GetNextElement()) { $arItem = $obElement->GetFields(); $arOffer = false; if ($arItem["IBLOCK_ID"] == $arResult["OFFERS_IBLOCK_ID"]) { if (!empty($arParams["OFFERS_PROPERTY_CODE"])) $arItem["PROPERTIES"] = $obElement->GetProperties(); $rsMasterProperty = CIBlockElement::GetProperty($arItem["IBLOCK_ID"], $arItem["ID"], array(), array("ID" => $arResult["OFFERS_PROPERTY_ID"], "EMPTY" => "N")); if ($arMasterProperty = $rsMasterProperty->Fetch()) { $rsMaster = CIBlockElement::GetList( array(), array( "ID" => $arMasterProperty["VALUE"], "IBLOCK_ID" => $arMasterProperty["LINK_IBLOCK_ID"], "ACTIVE" => "Y", ), false, false, $arSelect ); $rsMaster->SetUrlTemplates($arParams["DETAIL_URL"]); $obElement = $rsMaster->GetNextElement(); if (!is_object($obElement)) continue; } else { continue; } Iblock\Component\Tools::getFieldImageData( $arItem, array('PREVIEW_PICTURE', 'DETAIL_PICTURE'), Iblock\Component\Tools::IPROPERTY_ENTITY_ELEMENT, 'IPROPERTY_VALUES' ); $arOffer = $arItem; $arItem = $obElement->GetFields(); } $ipropValues = new ElementValues($arItem["IBLOCK_ID"], $arItem["ID"]); $arItem["IPROPERTY_VALUES"] = $ipropValues->getValues(); Iblock\Component\Tools::getFieldImageData( $arItem, array('PREVIEW_PICTURE', 'DETAIL_PICTURE'), Iblock\Component\Tools::IPROPERTY_ENTITY_ELEMENT, 'IPROPERTY_VALUES' ); $arItem["FIELDS"] = array(); if (!empty($arParams["FIELD_CODE"])) { foreach($arParams["FIELD_CODE"] as &$code) { if (isset($fieldsHidden[$code])) continue; if (!isset($arResult['EMPTY_FIELDS'][$code])) $arResult['EMPTY_FIELDS'][$code] = true; if (array_key_exists($code, $arItem)) { if (isset($fieldsRequired[$code]) || !isset($_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]['DELETE_FIELD'][$code])) { $arItem["FIELDS"][$code] = $arItem[$code]; if ($arItem["FIELDS"][$code] === null) $arItem["FIELDS"][$code] = ''; if ($arItem["FIELDS"][$code] != '') $arResult['EMPTY_FIELDS'][$code] = false; } if (isset($fieldsRequired[$code]) || !isset($_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DELETE_FIELD"][$code])) { $arResult["SHOW_FIELDS"][$code] = $code; } else { $arResult["DELETED_FIELDS"][$code] = $code; $arResult['EMPTY_FIELDS'][$code] = false; } } } unset($code); } $arItem["OFFER_FIELDS"] = array(); $arItem["OFFER_PROPERTIES"] = array(); $arItem["OFFER_DISPLAY_PROPERTIES"] = array(); if ($arOffer) { if (!empty($arParams["OFFERS_FIELD_CODE"])) { foreach ($arParams["OFFERS_FIELD_CODE"] as &$code) { if (isset($fieldsHidden[$code])) continue; if (!isset($arResult['EMPTY_OFFER_FIELDS'][$code])) $arResult['EMPTY_OFFER_FIELDS'][$code] = true; if (array_key_exists($code, $arOffer)) { if (!isset($_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DELETE_OFFER_FIELD"][$code])) { $arItem["OFFER_FIELDS"][$code] = $arOffer[$code]; if ($arItem["OFFER_FIELDS"][$code] === null) $arItem["OFFER_FIELDS"][$code] = ''; if ($arItem["OFFER_FIELDS"][$code] != '') $arResult['EMPTY_OFFER_FIELDS'][$code] = false; } if (isset($_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DELETE_OFFER_FIELD"][$code])) { $arResult["DELETED_OFFER_FIELDS"][$code] = $code; $arResult['EMPTY_OFFER_FIELDS'][$code] = false; } else { $arResult["SHOW_OFFER_FIELDS"][$code] = $code; } } } unset($code); } $arItem["OFFER_PROPERTIES"] = $arOffer["PROPERTIES"]; if (!empty($arParams["OFFERS_PROPERTY_CODE"])) { foreach ($arParams["OFFERS_PROPERTY_CODE"] as &$pid) { if (!isset($arOffer['PROPERTIES'][$pid])) continue; if (!isset($arResult['EMPTY_OFFER_PROPERTIES'][$pid])) $arResult['EMPTY_OFFER_PROPERTIES'][$pid] = true; if (!isset($_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DELETE_OFFER_PROP"][$pid])) { $prop = &$arOffer['PROPERTIES'][$pid]; $boolArr = is_array($prop['VALUE']); if ( ($boolArr && !empty($prop["VALUE"])) || (!$boolArr && strlen($prop["VALUE"]) > 0) ) { $arItem['OFFER_DISPLAY_PROPERTIES'][$pid] = CIBlockFormatProperties::GetDisplayValue($arOffer, $prop, 'catalog_out'); if ($arItem['OFFER_DISPLAY_PROPERTIES'][$pid]['DISPLAY_VALUE'] !== false) $arResult['EMPTY_OFFER_PROPERTIES'][$pid] = false; } unset($prop); } if (isset($_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DELETE_OFFER_PROP"][$pid])) { $arResult["DELETED_OFFER_PROPERTIES"][$pid] = $arOffer["PROPERTIES"][$pid]; $arResult['EMPTY_OFFER_PROPERTIES'][$pid] = false; } else { $arResult["SHOW_OFFER_PROPERTIES"][$pid] = $arOffer["PROPERTIES"][$pid]; } } unset($pid); } } $arItem["PROPERTIES"] = array(); $arItem["DISPLAY_PROPERTIES"] = array(); if (!empty($arParams["PROPERTY_CODE"])) { $arItem["PROPERTIES"] = $obElement->GetProperties(); foreach ($arParams["PROPERTY_CODE"] as &$pid) { if (!isset($arItem['PROPERTIES'][$pid])) continue; if (!isset($arResult['EMPTY_PROPERTIES'][$pid])) $arResult['EMPTY_PROPERTIES'][$pid] = true; if (!isset($_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DELETE_PROP"][$pid])) { $prop = &$arItem['PROPERTIES'][$pid]; $boolArr = is_array($prop['VALUE']); if ( ($boolArr && !empty($prop["VALUE"])) || (!$boolArr && strlen($prop["VALUE"]) > 0) ) { $arItem['DISPLAY_PROPERTIES'][$pid] = CIBlockFormatProperties::GetDisplayValue($arItem, $prop, 'catalog_out'); if ($arItem['DISPLAY_PROPERTIES'][$pid]['DISPLAY_VALUE'] !== false) $arResult['EMPTY_PROPERTIES'][$pid] = false; } } if (isset($_SESSION[$arParams["NAME"]][$arParams["IBLOCK_ID"]]["DELETE_PROP"][$pid])) { $arResult["DELETED_PROPERTIES"][$pid] = $arItem["PROPERTIES"][$pid]; $arResult['EMPTY_PROPERTIES'][$pid] = false; } else { $arResult["SHOW_PROPERTIES"][$pid] = $arItem["PROPERTIES"][$pid]; } } unset($pid); } $arItem['PARENT_ID'] = $arItem['ID']; $arItem['PRICES'] = array(); $arItem['PRICE_MATRIX'] = false; $arItem['MIN_PRICE'] = false; if ($arOffer) { if ($arParams["USE_PRICE_COUNT"]) { if ($catalogIncluded) { $arItem["PRICE_MATRIX"] = CatalogGetPriceTableEx($arOffer["ID"], 0, $arPriceTypeID, 'Y', $arConvertParams); if (isset($arItem["PRICE_MATRIX"]["COLS"]) && is_array($arItem["PRICE_MATRIX"]["COLS"])) { $arItem['PRICE_MATRIX']['MIN_PRICES'] = array(); $rows = $arItem['PRICE_MATRIX']['ROWS']; $matrix = $arItem['PRICE_MATRIX']['MATRIX']; foreach(array_keys($rows) as $keyColumn) $arItem["PRICE_MATRIX"]["COLS"][$keyColumn]["NAME_LANG"] = htmlspecialcharsbx($arItem["PRICE_MATRIX"]["COLS"][$keyColumn]["NAME_LANG"]); foreach (array_keys($rows) as $index) { $minPrice = null; foreach (array_keys($matrix) as $priceType) { if (empty($matrix[$priceType][$index])) continue; if ($arParams['CONVERT_CURRENCY'] == 'Y') { if ($minPrice === null || $minPrice['PRICE_SCALE'] > $matrix[$priceType][$index]['PRICE']) { $minPrice = array( 'PRICE_SCALE' => $matrix[$priceType][$index]['PRICE'], 'PRICE' => $matrix[$priceType][$index]['PRICE'], 'CURRENCY' => $matrix[$priceType][$index]['CURRENCY'] ); } } else { $priceScale = ($matrix[$priceType][$index]['CURRENCY'] == $basePrice ? $matrix[$priceType][$index]['PRICE'] : \CCurrencyRates::ConvertCurrency( $matrix[$priceType][$index]['PRICE'], $matrix[$priceType][$index]['CURRENCY'], $basePrice ) ); if ($minPrice === null || $minPrice['PRICE_SCALE'] > $priceScale) { $minPrice = array( 'PRICE_SCALE' => $priceScale, 'PRICE' => $matrix[$priceType][$index]['PRICE'], 'CURRENCY' => $matrix[$priceType][$index]['CURRENCY'] ); } } } unset($priceType); if (is_array($minPrice)) { unset($minPrice['PRICE_SCALE']); $arItem['PRICE_MATRIX']['MIN_PRICES'][$index] = $minPrice; } unset($minPrice); } unset($index); unset($matrix, $rows); } } } else { $arItem["PRICES"] = CIBlockPriceTools::GetItemPrices( $arOffer["IBLOCK_ID"], $arResult["PRICES"], $arOffer, $arParams["PRICE_VAT_INCLUDE"], $arConvertParams ); } $arItem["CAN_BUY"] = CIBlockPriceTools::CanBuy($arParams["IBLOCK_ID"], $arResult["PRICES"], $arOffer); $arItem['ID'] = $arOffer['ID']; } else { if ($arParams["USE_PRICE_COUNT"]) { if ($catalogIncluded) { $arItem["PRICE_MATRIX"] = CatalogGetPriceTableEx($arItem["ID"], 0, $arPriceTypeID, 'Y', $arConvertParams); if (isset($arItem["PRICE_MATRIX"]["COLS"]) && is_array($arItem["PRICE_MATRIX"]["COLS"])) { $arItem['PRICE_MATRIX']['MIN_PRICES'] = array(); $rows = $arItem['PRICE_MATRIX']['ROWS']; $matrix = $arItem['PRICE_MATRIX']['MATRIX']; foreach(array_keys($rows) as $keyColumn) $arItem["PRICE_MATRIX"]["COLS"][$keyColumn]["NAME_LANG"] = htmlspecialcharsbx($arItem["PRICE_MATRIX"]["COLS"][$keyColumn]["NAME_LANG"]); foreach (array_keys($rows) as $index) { $minPrice = null; foreach (array_keys($matrix) as $priceType) { if (empty($matrix[$priceType][$index])) continue; if ($arParams['CONVERT_CURRENCY'] == 'Y') { if ($minPrice === null || $minPrice['PRICE_SCALE'] > $matrix[$priceType][$index]['PRICE']) { $minPrice = array( 'PRICE_SCALE' => $matrix[$priceType][$index]['PRICE'], 'PRICE' => $matrix[$priceType][$index]['PRICE'], 'CURRENCY' => $matrix[$priceType][$index]['CURRENCY'] ); } } else { $priceScale = ($matrix[$priceType][$index]['CURRENCY'] == $basePrice ? $matrix[$priceType][$index]['PRICE'] : \CCurrencyRates::ConvertCurrency( $matrix[$priceType][$index]['PRICE'], $matrix[$priceType][$index]['CURRENCY'], $basePrice ) ); if ($minPrice === null || $minPrice['PRICE_SCALE'] > $priceScale) { $minPrice = array( 'PRICE_SCALE' => $priceScale, 'PRICE' => $matrix[$priceType][$index]['PRICE'], 'CURRENCY' => $matrix[$priceType][$index]['CURRENCY'] ); } } } unset($priceType); if (is_array($minPrice)) { unset($minPrice['PRICE_SCALE']); $arItem['PRICE_MATRIX']['MIN_PRICES'][$index] = $minPrice; } unset($minPrice); } unset($index); unset($matrix, $rows); } } } else { $arItem["PRICES"] = CIBlockPriceTools::GetItemPrices( $arItem["IBLOCK_ID"], $arResult["PRICES"], $arItem, $arParams["PRICE_VAT_INCLUDE"], $arConvertParams ); } $arItem["CAN_BUY"] = CIBlockPriceTools::CanBuy($arParams["IBLOCK_ID"], $arResult["PRICES"], $arItem); } if (!$arParams['USE_PRICE_COUNT'] && !empty($arItem['PRICES'])) { foreach ($arItem['PRICES'] as &$arOnePrice) { if ($arOnePrice['MIN_PRICE'] == 'Y') { $arItem['MIN_PRICE'] = $arOnePrice; break; } } unset($arOnePrice); } $arItem['BUY_URL'] = str_replace('#ID#', $arItem['ID'], $arResult['BUY_URL_TEMPLATE']); $arItem['ADD_URL'] = str_replace('#ID#', $arItem['ID'], $arResult['ADD_URL_TEMPLATE']); $arItem['~DELETE_URL'] = str_replace('#ID#', $arItem['ID'], $arResult['~DELETE_FROM_COMPARE_URL_TEMPLATE']); $arResult["ITEMS"][] = $arItem; } if (!empty($arResult['EMPTY_FIELDS'])) { $arResult['EMPTY_FIELDS'] = array_filter($arResult['EMPTY_FIELDS']); if (!empty($arResult['EMPTY_FIELDS'])) { foreach ($arResult['EMPTY_FIELDS'] as $code => $isEmpty) { if (isset($arResult['SHOW_FIELDS'][$code])) unset($arResult['SHOW_FIELDS'][$code]); if (isset($arResult['DELETED_FIELDS'][$code])) unset($arResult['DELETED_FIELDS'][$code]); } unset($code, $isEmpty); } } if (!empty($arResult['EMPTY_OFFER_FIELDS'])) { $arResult['EMPTY_OFFER_FIELDS'] = array_filter($arResult['EMPTY_OFFER_FIELDS']); if (!empty($arResult['EMPTY_OFFER_FIELDS'])) { foreach ($arResult['EMPTY_OFFER_FIELDS'] as $code => $isEmpty) { if (isset($arResult['SHOW_OFFER_FIELDS'][$code])) unset($arResult['SHOW_OFFER_FIELDS'][$code]); if (isset($arResult['DELETED_OFFER_FIELDS'][$code])) unset($arResult['DELETED_OFFER_FIELDS'][$code]); } unset($code, $isEmpty); } } if (!empty($arResult['EMPTY_OFFER_PROPERTIES'])) { $arResult['EMPTY_OFFER_PROPERTIES'] = array_filter($arResult['EMPTY_OFFER_PROPERTIES']); if (!empty($arResult['EMPTY_OFFER_PROPERTIES'])) { foreach ($arResult['EMPTY_OFFER_PROPERTIES'] as $code => $isEmpty) { if (isset($arResult['SHOW_OFFER_PROPERTIES'][$code])) unset($arResult['SHOW_OFFER_PROPERTIES'][$code]); if (isset($arResult['DELETED_OFFER_PROPERTIES'][$code])) unset($arResult['DELETED_OFFER_PROPERTIES'][$code]); } unset($code, $isEmpty); } } if (!empty($arResult['EMPTY_PROPERTIES'])) { $arResult['EMPTY_PROPERTIES'] = array_filter($arResult['EMPTY_PROPERTIES']); if (!empty($arResult['EMPTY_PROPERTIES'])) { foreach ($arResult['EMPTY_PROPERTIES'] as $code => $isEmpty) { if (isset($arResult['SHOW_PROPERTIES'][$code])) unset($arResult['SHOW_PROPERTIES'][$code]); if (isset($arResult['DELETED_PROPERTIES'][$code])) unset($arResult['DELETED_PROPERTIES'][$code]); } unset($code, $isEmpty); } } $arResult['FIELDS_REQUIRED'] = $fieldsRequired; $arResult['FIELDS_SORT'] = array( 'ID' => 100, 'IBLOCK_ID' => 150, 'CODE' => 200, 'XML_ID' => 300, 'NAME' => 400, 'TAGS' => 500, 'SORT' => 600, 'DESCRIPTION' => 700, 'DESCRIPTION_TYPE' => 800, 'PICTURE' => 900, 'PREVIEW_TEXT' => 1000, 'PREVIEW_TEXT_TYPE' => 1100, 'PREVIEW_PICTURE' => 1200, 'DETAIL_TEXT' => 1300, 'DETAIL_TEXT_TYPE' => 1400, 'DETAIL_PICTURE' => 1500, 'DATE_ACTIVE_FROM' => 1600, 'ACTIVE_FROM' => 1700, 'DATE_ACTIVE_TO' => 1800, 'ACTIVE_TO' => 1900, 'SHOW_COUNTER' => 2000, 'SHOW_COUNTER_START' => 2100, 'STATUS' => 2200, 'IBLOCK_TYPE_ID' => 2300, 'IBLOCK_CODE' => 2400, 'IBLOCK_NAME' => 2500, 'IBLOCK_EXTERNAL_ID' => 2600, 'DATE_CREATE' => 2700, 'CREATED_BY' => 2800, 'CREATED_USER_NAME' => 2900, 'TIMESTAMP_X' => 3000, 'MODIFIED_BY' => 3100, 'USER_NAME' => 3200, 'SECTION_ID' => 3300, 'ACTIVE' => 3400, 'BP_PUBLISHED' => 3500, 'SECTIONS' => 3600, 'IBLOCK_SECTION' => 3700, 'ACTIVE_PERIOD_FROM' => 3800, 'ACTIVE_PERIOD_TO' => 3900 ); $arResult["ITEMS_TO_ADD"] = array(); if ($arParams["DISPLAY_ELEMENT_SELECT_BOX"]) { $bIBlockCatalog = false; $arCatalog = false; if ($catalogIncluded) { $arCatalog = CCatalog::GetByID($arParams["IBLOCK_ID"]); if (!empty($arCatalog) && is_array($arCatalog)) $bIBlockCatalog = true; } $arResult['CATALOG'] = $arCatalog; $arSelect = array( "ID", "NAME", ); $arFilter = array( "!ID" => array_keys($arCompare), "IBLOCK_LID" => SITE_ID, "IBLOCK_ACTIVE" => "Y", "ACTIVE_DATE" => "Y", "ACTIVE" => "Y", "CHECK_PERMISSIONS" => "Y", ); if ($bIBlockCatalog && 'Y' == $arParams['HIDE_NOT_AVAILABLE']) $arFilter['CATALOG_AVAILABLE'] = 'Y'; if ($arResult["OFFERS_IBLOCK_ID"] > 0) { $arFilter["IBLOCK_ID"] = array($arParams["IBLOCK_ID"], $arResult["OFFERS_IBLOCK_ID"]); $arFilter["!=ID"] = CIBlockElement::SubQuery("PROPERTY_".$arResult["OFFERS_PROPERTY_ID"], array( "IBLOCK_ID" => $arResult["OFFERS_IBLOCK_ID"] )); } else { $arFilter["IBLOCK_ID"] = $arParams["IBLOCK_ID"]; } $arSort = array( $arParams["ELEMENT_SORT_FIELD_BOX"] => $arParams["ELEMENT_SORT_ORDER_BOX"], $arParams["ELEMENT_SORT_FIELD_BOX2"] => $arParams["ELEMENT_SORT_ORDER_BOX2"], ); $rsElements = CIBlockElement::GetList($arSort, $arFilter, false, false, $arSelect); while ($arElement = $rsElements->GetNext()) { $arResult["ITEMS_TO_ADD"][$arElement["ID"]]=$arElement["NAME"]; } } $this->includeComponentTemplate(); } else { $actionByAjax = ( (isset($_REQUEST['ajax_action']) && $_REQUEST['ajax_action'] == 'Y') || (isset($_REQUEST['compare_result_reload']) && $_REQUEST['compare_result_reload'] == 'Y') ); if ($actionByAjax) { $APPLICATION->RestartBuffer(); ShowNote(GetMessage("CATALOG_COMPARE_LIST_EMPTY")); die(); } ShowNote(GetMessage("CATALOG_COMPARE_LIST_EMPTY")); }