Ограничиваем вывод инфоэлементов в меню

Для вывода инфоэлементов в меню достаточно включить параметр showInformationsystemItems в Structure_Controller_Show. Однако в этом случае отображаются все элементы из подключенных инфосистем. Чтобы ограничить вывод только нужными инфосистемами, потребуется использовать специальный хук:

Copy
Core_Event::attach('Structure_Controller_Show.onBeforeFindInformationsystemItems', function(Structure_Controller_Show $oController, $args) {	if (is_array($oController->showInformationsystemItems)) {		list($oInformationsystem_Items, $parentObject, $oInformationsystem) = $args;		if (!in_array($oInformationsystem->id, $oController->showInformationsystemItems)) {			$oInformationsystem_Items->queryBuilder()				->limit(0);		}	}});

Тогда мы сможем указать в параметре showInformationsystemItems массив идентификаторов инфосистем, чтобы только из них выводились инфоэлементы

Copy
$Structure_Controller_Show->showInformationsystemItems([6])

04.08.2025