Добрый день!
Создал раздел /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(); |