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

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

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

Copy
<?phpclass Add_Logged {	static $aEvents = array(		'informationsystem.onBeforeGetXml',		'site.onBeforeGetXml',		'shop.onBeforeGetXml'	);	static public function __init() {		if (Core_Auth::logged() && count(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));		$object->addEntity(Core::factory('Core_Xml_Entity')->name('adminuser')->value(intval($_SESSION['current_users_id']))); // добавляет id пользователя ЦА	}}

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

Copy
Add_Logged::__init();

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

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

07.10.2018