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