Добрый день!
Создал раздел /admin/ и для него в header.php по условию вместо основного меню показываю меню для этого раздела.
Но проблема, что header кешируется и при заходе в этот раздел основное меню так и показывается пока кеш не сбросишь вручную.
Пока редирект делаю на адрес /admin/?clear_cache=Y
Но хочется чтобы кеш чистился при входе на любую страницу раздела или любой подраздел. Но из-за кеширования даже проверка, что мы зашли в раздел admin в header.php не работает, она срабатывает только при сбросе кеша вручную.
Это проверка в header.php, где должно подсовываться разное меню, в зависимости от местоположения на сайте. Проверку делает метод $app->isAdminDir() - он точно работает, проверено(после отключ)
И даже не помогает НЕ ИСПОЛЬЗОВАТЬ КЕШ
Пробовал вставлять, но ничего не помогло, может не туда вставляю?:
Создал раздел /admin/ и для него в header.php по условию вместо основного меню показываю меню для этого раздела.
Но проблема, что header кешируется и при заходе в этот раздел основное меню так и показывается пока кеш не сбросишь вручную.
Пока редирект делаю на адрес /admin/?clear_cache=Y
Но хочется чтобы кеш чистился при входе на любую страницу раздела или любой подраздел. Но из-за кеширования даже проверка, что мы зашли в раздел admin в header.php не работает, она срабатывает только при сбросе кеша вручную.
Код |
---|
// вот как я в index.php делаю редирект (это костыль) if(!isset($_GET['clear_cache'])){ header('location: ' . '/admin/?clear_cache=Y'); exit; } |
Это проверка в header.php, где должно подсовываться разное меню, в зависимости от местоположения на сайте. Проверку делает метод $app->isAdminDir() - он точно работает, проверено(после отключ)
Код |
---|
if(!$app->isAdminDir()){ $APPLICATION->IncludeComponent( "bitrix:menu", "header-main", [ "ROOT_MENU_TYPE" => "main", "MENU_CACHE_TYPE" => "N", // пробую отключить //... ] ); }else{ $APPLICATION->IncludeComponent( "bitrix:menu", "header-main", [ "ROOT_MENU_TYPE" => "adminmin", "MENU_CACHE_TYPE" => "N", // Тип кеширования : array ( 'A' => 'Авто', 'Y' => 'Кешировать', 'N' => 'Не кешировать', ) //... ] ); } |
И даже не помогает НЕ ИСПОЛЬЗОВАТЬ КЕШ
Пробовал вставлять, но ничего не помогло, может не туда вставляю?:
Код |
---|
BXClearCache( true, "/"); BXClearCache( true, "/admin/"); // это тоже попробовал $staticHtmlCache = \Bitrix\Main\Data\StaticHtmlCache::getInstance(); $staticHtmlCache->deleteAll(); |