|
Bitrix - скидка
Bitrix - скидка
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
<?php
//Кеш
$cache = new CPHPCache();
$cache_time = 3600;
$cache_data = array();
$cache_id = 'arDiscountFilterID';
$cache_path = '/arDiscountFilterID/';
if ($cache_time > 0 && $cache->InitCache($cache_time, $cache_id, $cache_path))
{
$res = $cache->GetVars();
if (is_array($res["arrFilter_id"]) && count($res["arrFilter_id"] > 0)) {
$arrFilter_id = $res["arrFilter_id"];
}
}
if (!is_array($arrFilter_id))
{
if(!CModule::IncludeModule("catalog")) {
$this->AbortResultCache();
ShowError("IBLOCK_MODULE_NOT_INSTALLED");
return false;
}
if(!CModule::IncludeModule("sale")) {
$this->AbortResultCache();
ShowError("IBLOCK_MODULE_NOT_INSTALLED");
return false;
}
if(!CModule::IncludeModule("iblock")) {
$this->AbortResultCache();
ShowError("IBLOCK_MODULE_NOT_INSTALLED");
return false;
}
//Выбираем все возможные товары
if($res = CCatalogDiscount::GetDiscountProductsList(array(), array(), false, false, array())){
$arDiscountElementID = array();
while($ob = $res->GetNext()){
$arDiscountElementID[] = $ob["PRODUCT_ID"];
}
}
if (count($arDiscountElementID)>0){
$arSelect = Array("ID");
//Если id в инфоблоке товаров - выбираем
$arFilter_tov = Array(
"IBLOCK_ID"=>array(6),
"ACTIVE_DATE"=>"Y",
"ACTIVE"=>"Y",
"ID"=>$arDiscountElementID
);
$res = CIBlockElement::GetList(Array("ID" => "DESC"), $arFilter_tov, false, false, $arSelect);
if($res){
$arrFilter_id["=ID"] = array();
while($arIBlockElement = $res->GetNext()){
$arrFilter_id["=ID"][] = $arIBlockElement["ID"];
}
}
//Выбираем по id торговых предложений
$arSelect = Array(
"ID",
"PROPERTY_CML2_LINK"
);
$arFilter_tov = Array(
"IBLOCK_ID"=>array(7),
"ACTIVE_DATE"=>"Y",
"ACTIVE"=>"Y",
"ID"=>$arDiscountElementID
);
$res = CIBlockElement::GetList(Array("ID" => "DESC"), $arFilter_tov, false, false, $arSelect);
if($res){
while($arIBlockElement = $res->GetNext()){
$arrFilter_id["=ID"][] = $arIBlockElement["PROPERTY_CML2_LINK_VALUE"];
}
}
}
$cache_data["arrFilter_id"] = $arrFilter_id;
}
//////////// end cache /////////
if ($cache_time > 0)
{
$cache->StartDataCache($cache_time, $cache_id, $cache_path);
$cache->EndDataCache($cache_data);
}
$arrFilter = $arrFilter_id;
global $arrFilter;
?>
|
|