<?
if (CModule::IncludeModule("iblock")):
$IBLOCK_TYPE = "article"; // тип инфо-блока
$IBLOCK_ID = 60; // ID инфо-блока
$CACHE_TIME = $GLOBALS["CACHE_TIME"]; // время кэширования
$aMenuLinksNew = array();
$CACHE_ID = __FILE__.$IBLOCK_ID;
$obMenuCache = new CPHPCache;
// если массив закэширован то
if($obMenuCache->InitCache($CACHE_TIME, $CACHE_ID, "/"))
{
// берем данные из кэша
$arVars = $obMenuCache->GetVars();
$aMenuLinksNew = $arVars["aMenuLinksNew"];
}
else
{
// иначе собираем разделы
$rsSections = GetIBlockSectionList($IBLOCK_ID, false, array("SORT" => "ASC", "ID" => "ASC"), false, array("ACTIVE"=>"Y"));
while ($arSection = $rsSections->Fetch())
{
$arrAddLinks = array(SITE_DIR."articles/element.php?SECTION_ID=".$arSection["ID"]);
// пройдемся по элементам раздела
if ($rsElements = GetIBlockElementListEx($IBLOCK_TYPE,
false, false, array(), false, array("ACTIVE" => "Y", "IBLOCK_ID" => $IBLOCK_ID,
"SECTION_ID" => $arSection["ID"]), array("ID", "IBLOCK_ID", "DETAIL_PAGE_URL")))
{
while ($arElement = $rsElements->GetNext()) $arrAddLinks[] = $arElement["DETAIL_PAGE_URL"];
}
$aMenuLinksNew[] = array($arSection["NAME"], SITE_DIR."articles/section.php?SECTION_ID=".$arSection["ID"], $arrAddLinks);
}
}
// сохраняем данные в кэше
if($obMenuCache->StartDataCache())
{
$obMenuCache->EndDataCache(Array("aMenuLinksNew_2" => $aMenuLinksNew_2));
}
$aMenuLinks = array_merge($aMenuLinks, $aMenuLinksNew);
endif;
?>
|