Блог
Как скрыть панели для управляющих блоков контроллера в HostCMS
Иногда панели для блоков, которые генерируют контроллеры в HostCMS, могут мешать и их необходимо полностью отключить, например, это может понадобиться при загрузке какого-то блока по AJAX, либо при вставке блока в XSL-шаблон. Разберем как этого можно добиться.
Панель контроллера
Если зайти в ЦА системы, то на сайте начнут отображаться панели управления блоков, например, рядом с меню появится панель для добавления нового раздела, а рядом с выводом блока товаров панель для добавления товара, группы товаров и редактирования интернет-магазина и другие.
Панель может выглядеть вот так:
Блоки генерируются контроллерами показа, для меню это Structure_Controller_Show
, для интернет-магазина Structure_Controller_Show
и т.д. Для принудительного отключения панели, чтобы она не отображалась даже в случае захода в ЦА у всех контроллеров есть свойство showPanel
, которое по умолчанию содержит значение TRUE
, его можно изменить перед вызовом метода show
и панель перестанет отображаться:
$oShopControllerShow
->showPanel(FALSE)
->show();
Панель показа XML/XSL
Есть еще одна панель, которая появляется рядом с блоком, но уже когда мы специально ее включим, это панель для показа XML/XSL, вот такая:
Штатного способа отключить эту панель нет, но можно заглянуть в код класса Xsl_Processor_Observer
и понять, что ее вывод зависит от сессионной переменной HOSTCMS_SHOW_XML
, манипулируя которой, можно управлять отображением этого блока, например, вот так:
// Запоминаем флаг по показу XML/XSL
$bHostcmsShowXml = Core_Array::getSession('HOSTCMS_SHOW_XML');
if ($bHostcmsShowXml)
{
$_SESSION['HOSTCMS_SHOW_XML'] = FALSE;
}
$oShopControllerShow
->showPanel(FALSE)
->show();
// Возвращаем флаг по показу XML/XSL
$_SESSION['HOSTCMS_SHOW_XML'] = $bHostcmsShowXml;