• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/lib/UI/LeftMenu/Menu.php
  • Класс: BitrixIntranetUILeftMenuMenu
  • Вызов: Menu::__construct
public function __construct(array $menuItemsData, User $user)
{
	$this->user = $user;
	$this->siteId = defined('SITE_ID') ? SITE_ID : self::getDefaultSiteId();

	$this->items['shown'] = new MenuItemGroupService(['ID' => 'shown', 'TEXT' => 'Shown']);
	$this->items['hidden'] = new MenuItemGroupService(['ID' => 'hidden', 'TEXT' => 'Hidden']);

	foreach ($menuItemsData as $itemData)
	{
		$params = $itemData['PARAMS'] ?? [];
		$params = array_change_key_case($params, CASE_LOWER);

		if ($itemData['DEPTH_LEVEL'] !== 1
			|| (isset($params['hidden']) && $params['hidden'] === true))
		{
			continue;
		}

		$item = new MenuItemItemSystem(array_merge([
			'ID' => $params['menu_item_id'] ?? (isset($params['name']) && $params['name'] === 'live_feed' ? 'menu_live_feed' : null),
			'TEXT' => $itemData['TEXT'],
			'LINK' => $itemData['LINK'],
			'COUNTER_ID' => $params['counter_id'] ?? null,
			'ADDITIONAL_LINKS' => $itemData['ADDITIONAL_LINKS'] ?? [],
		], $itemData));
		$item->setParams($params);
		$this->setItem($item);
	}

	foreach ($this->getSavedUserMenuItems() as $class => $data)
	{
		if (is_array($data))
		{
			foreach ($data as $itemData)
			{
				$item = new $class(array_merge([
					'ID' => $itemData['ID'],
					'TEXT' => $itemData['TEXT'],
					'LINK' => $itemData['LINK'],
					'COUNTER_ID' => $itemData['COUNTER_ID'] ?? null,
					'SUB_LINK' => $itemData['SUB_LINK'] ?? null,
					'NEW_PAGE' => $itemData['NEW_PAGE'] ?? null,
					'ADDITIONAL_LINKS' => $itemData['ADDITIONAL_LINKS'] ?? [],
				] , $itemData));
				$this->setItem($item);
			}
		}
	}
}