public function getCacheID($additionalCacheID = false) { /** @global CMain $APPLICATION */ global $APPLICATION; /** @global CUser $USER */ global $USER; $strCacheID = ""; if($this->arParams["MENU_CACHE_TIME"]) { if($this->arParams["CACHE_SELECTED_ITEMS"]) $strCacheID = $APPLICATION->GetCurPage(); else $strCacheID = ""; $strCacheID .= ":".$this->arParams["USE_EXT"]. ":".$this->arParams["MAX_LEVEL"]. ":".$this->arParams["ROOT_MENU_TYPE"]. ":".$this->arParams["CHILD_MENU_TYPE"]. ":".LANGUAGE_ID. ":".SITE_ID. "" ; if($this->arParams["MENU_CACHE_USE_GROUPS"] === "Y") $strCacheID .= ":".$USER->GetGroups(); if($this->arParams["MENU_CACHE_USE_USERS"] === "Y") $strCacheID .= ":".$USER->GetID(); if(is_array($this->arParams["MENU_CACHE_GET_VARS"])) { foreach($this->arParams["MENU_CACHE_GET_VARS"] as $name) { $name = trim($name); if($name != "" && array_key_exists($name, $_GET)) $strCacheID .= ":".$name."=".$_GET[$name]; } } $strCacheID = md5($strCacheID); } return $strCacheID; }
if($this->arParams["CACHE_SELECTED_ITEMS"]) $strCacheID = $APPLICATION->GetCurPage(); else $strCacheID = "";
<?$APPLICATION->IncludeComponent("bitrix:menu", "top", Array( "ROOT_MENU_TYPE" => "top", // Тип меню для первого уровня "MENU_CACHE_TYPE" => "A", // Тип кеширования "MENU_CACHE_TIME" => "3600", // Время кеширования (сек.) "MENU_CACHE_USE_GROUPS" => "N", // Учитывать права доступа ... "CACHE_SELECTED_ITEMS" => "N", // Не создавать кеш меню для каждой страницы ), false );?>
Источник: