-
-
Save ildarkhasanshin/f8a08c32a41bb14a148023944bf2bc76 to your computer and use it in GitHub Desktop.
Bitrix caching
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<? | |
/*+ Начало вывода данных +*/ | |
$arResult = array(); | |
/*+ Здесь будем кешировать данные +*/ | |
$cache = new CPHPCache(); | |
$cache_time = $arParams["CACHE_TIME"]; | |
$cache_id = md5('userTagsKey'); | |
$cache_path = '/userTags/'; | |
$materLoginArr = array(); // Объявляем переменную типа массив | |
if ($cache_time > 0 && $cache->InitCache($cache_time, $cache_id, $cache_path)) | |
{ | |
/*+ При наличие кеша получаем массив данных +*/ | |
$res = $cache->GetVars(); | |
$arResult = $res["tagsAll"]; | |
$rateTmp = $res["rateTmp"]; | |
} | |
else | |
{ | |
$cache->StartDataCache($cache_time, $cache_id, $cache_path); | |
/*+ Иначе обновляем кеш +*/ | |
$arFilter = array( | |
"IBLOCK_ID" => $arParams["IBLOCK_ID"], | |
"ACTIVE" => "Y", | |
"!PROPERTY_employee" => false /*+ Пропускаем пустые теги +*/ | |
); | |
$rateTmp = array(); | |
$obTags = CIBlockElement::GetList(array("name"=>"asc"),$arFilter , false, false, array("ID","IBLOCK_ID","NAME")); | |
while($ob = $obTags->GetNextElement(false,false)) | |
{ | |
$arFields = $ob->GetFields(); | |
$arProps = $ob->GetProperties(); | |
$arResult["TAGS"][$arFields["ID"]]["TAG"] = trim($arFields["NAME"]); | |
$arResult["TAGS"][$arFields["ID"]]["USERS"] = array(); | |
$arResult["TAGS"][$arFields["ID"]]["RATE"] = 0; | |
$arResult["TAGS"][$arFields["ID"]]["MAIN_TAG"] = (!empty($arProps["POPULAR_TAG"]["VALUE_XML_ID"]))?$arProps["POPULAR_TAG"]["VALUE_XML_ID"]:"N"; | |
/*+ Выборка +*/ | |
$rateTmp[$arFields["ID"]] = count($arProps["employee"]["VALUE"]); | |
if($arProps["employee"]["VALUE"]){ | |
$arResult["TAGS"][$arFields["ID"]]["USERS"] = $arProps["employee"]["VALUE"]; | |
$arResult["TAGS"][$arFields["ID"]]["RATE"] = count($arProps["employee"]["VALUE"]); | |
} | |
if($arResult["TAGS"][$arFields["ID"]]["MAIN_TAG"]=="Y"){ | |
$arResult["MAIN_TAG"]["USERS"] = $arResult["TAGS"][$arFields["ID"]]["USERS"]; | |
$arResult["MAIN_TAG"]["NAME"] = $arFields["NAME"]; | |
$arResult["MAIN_TAG"]["ID"] = $arFields["ID"]; | |
$arResult["MAIN_TAG"]["SEARCH_LINK"] = "/employees/?nav=".urlencode(serialize(array("kw_search"=>"%string".$arFields["NAME"]."%"))); # Это линк для поиска по коллегам (Сашин) | |
} | |
} | |
/*- -*/ | |
$cache->EndDataCache(array("tagsAll"=>$arResult,"rateTmp"=>$rateTmp)); | |
} /*- Кэш -*/ | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment