diff --git a/ElemIblockCache.php b/ElemIblockCache.php new file mode 100644 index 0000000..e113b90 --- /dev/null +++ b/ElemIblockCache.php @@ -0,0 +1,67 @@ + '/local/php_interface/ElemIblockCacheTable.php')); + * передаем поля, фильтр и сортировку в ElemIblockCacheTable::getElem($select, $filter, $order); + */ +class ElemIblockCacheTable +{ + /** + * @param array $select + * @param array $filter + * @param array $order + * @return array + */ + public static function getElem($select = array(), $filter = array(), $order = array()) + { + + $result = self::getElemSql($select, $filter, $order); + + return $result; + } + + /** + * @param array $select + * @param array $filter + * @param array $order + * @return array + */ + private static function getElemSql($select = array(),$filter = array(), $order = array()){ + + global $USER; + $obCache = \Bitrix\Main\Data\Cache::createInstance(); + $cacheLifetime = intval(36000); + $cacheID = md5(serialize($select.$filter.$order. $USER->GetUserGroupString())); + $cachePath = '/ElemIblockCacheTable'; + + if( $obCache->initCache($cacheLifetime, $cacheID, $cachePath) ){ + + $arElements = $obCache->getVars(); + + //echo 'Из кеша
'; + + }elseif(\Bitrix\Main\Loader::includeModule("iblock") && $obCache->StartDataCache()){ + + global $CACHE_MANAGER; + + $CACHE_MANAGER->StartTagCache($cachePath); + + $res = CIBlockElement::GetList($order, $filter, false, false, $select); + + while($ob = $res->GetNextElement()) + { + $arElements[] = $ob->GetFields(); + $CACHE_MANAGER->RegisterTag("iblock_id_" . $arElements["IBLOCK_ID"]); + + } + $CACHE_MANAGER->RegisterTag("iblock_id_new"); + $CACHE_MANAGER->EndTagCache(); + + $obCache->EndDataCache($arElements); + + //echo 'Без кеша
'; + } + return $arElements; + } +} \ No newline at end of file diff --git a/getLastNews.php b/getLastNews.php new file mode 100644 index 0000000..c428579 --- /dev/null +++ b/getLastNews.php @@ -0,0 +1,18 @@ +channel->item as $item) { + + $nom = $i+1; + + echo $nom.').'.$item->title."\n"; + echo 'Ссылка на новость'."\n"; + echo $item->description."\n"; + $i++; + if($i > 4){ + exit(); + } +} \ No newline at end of file