• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/Service/Timeline/Layout/Menu/MenuItemFactory.php
  • Класс: Bitrix\Crm\Service\Timeline\Layout\Menu\MenuItemFactory
  • Вызов: MenuItemFactory::createFromArray
static function createFromArray(array $menuItem): MenuItem
{
	if (isset($menuItem['delimiter']) && $menuItem['delimiter'])
	{
		return new MenuItemDelimiter($menuItem['text'] ?? '');
	}

	$menuItemItems = $menuItem['items'] ?? null;
	if (is_array($menuItemItems))
	{
		$menuItems = [];
		$index = 0;

		foreach ($menuItem['items'] as $item)
		{
			$id = $item['id'] ?? "submenu_$index";
			$index++;

			$menuItems[$id] = self::createFromArray($item);
		}

		return new MenuItemSubmenu(
			$menuItem['text'],
			(new Menu())
				->setItems($menuItems)
		);
	}

	return (new MenuItem($menuItem['text']))
		->setAction(self::createMenuItemAction($menuItem))
	;
}