Created
July 11, 2013 08:54
-
-
Save SerjRamone/5973775 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
Удаляем весь кэш с таким тегом: BXClearCache(true, "/userTags/");