- Модуль: 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);
}
}
}
}