Вывод данных на сайте только для администраторов в HostCMS

При проведении работ на уже работающем сайте на HostCMS возникает необходимость выводить какой-либо функционал только администратору сайта. В этой статье мы решим этот вопрос.

Для добавления в XML параметра 'is_admin' позволяющему в XSL определить что мы залогинены в админке создаем файл modules/add/logged.php и записываем в него этот код

<?php class Add_Logged { static $aEvents = array( 'Shop_Controller_Show.onBeforeRedeclaredShow', 'My_Shop_Controller_Show.onBeforeRedeclaredShow', 'Informationsystem_Controller_Show.onBeforeRedeclaredShow', 'My_Informationsystem_Controller_Show.onBeforeRedeclaredShow', 'Structure_Controller_Show.onBeforeRedeclaredShow', 'Shop_Cart_Controller_Show.onBeforeRedeclaredShow' ); static public function __init() { if (Core_Auth::logged() && sizeof(self::$aEvents)) { foreach (self::$aEvents as $sEvent) { Core_Event::attach($sEvent, array('Add_Logged', 'addLogged')); } } } static public function addLogged($object) { $object->addEntity(Core::factory('Core_Xml_Entity')->name('is_admin')->value(1)); } }

В файл bootstrap.php в самый конец добавляем строку: 

Add_Logged::__init();

Для определения в макете используем такое условие:

if (Core_Auth::logged()) { echo 'это увидит только администратор сайта'; }

07.10.2018