Как скрыть панели для управляющих блоков контроллера в 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;
comments powered by Disqus


Следующий "Установка сертификата Let's Encrypt на NGINX" К списку Предыдущий "Размещение интернет-магазина по новому адресу"