Skip to content

Instantly share code, notes, and snippets.

@ildarkhasanshin
Forked from SerjRamone/component.php
Created September 25, 2018 09:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ildarkhasanshin/f8a08c32a41bb14a148023944bf2bc76 to your computer and use it in GitHub Desktop.
Save ildarkhasanshin/f8a08c32a41bb14a148023944bf2bc76 to your computer and use it in GitHub Desktop.
Bitrix caching
<?
/*+ Начало вывода данных +*/
$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