Пример кэширования данных
<?
$obCache = new CPHPCache();
$cacheLifetime = 86400*7; $cacheID = 'AllGiftsIDs'; $cachePath = '/'.$cacheID;
if($obCache->InitCache($cacheLifetime, $cacheID, $cachePath)){//если есть закэшированные данные
$vars = $obCache->GetVars();
extract($vars);
$arAllGiftsIDs = $vars['arAllGiftsIDs'];
}elseif($obCache->StartDataCache()){//если нету закэшированных данных (первый раз)
CModule::IncludeModule('catalog');
$arProps = array();
$arSelect = Array("ID", "NAME", "DATE_ACTIVE_FROM", "PROPERTY_GIFTS");
$arFilter = Array("IBLOCK_ID"=>2, "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y");
$res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
while($ob = $res->GetNextElement()){
$arFields = $ob->GetFields();
if(count($arFields['PROPERTY_GIFTS_VALUE'])>0){
foreach($arFields['PROPERTY_GIFTS_VALUE'] as $key=>$prop){
if(!in_array($prop, $arProps)) $arProps[$key] = $prop;
}
}
}
$arAllGiftsIDs = '- ';
foreach ($arProps as $key=>$arSection){
$arAllGiftsIDs .= '
- <ссылка url="/gifts/?arrFilter_68_'.abs(crc32($key)).'=Y&set_filter=Показать">'.$arSection.'</ссылка> '; } $arAllGiftsIDs .= '
Оставить комментарий