* @package Combodo\iTop\Application\UI\Base\Layout\TopBar * @internal * @since 3.0.0 */ class TopBarFactory { /** * Make a standard TopBar layout for backoffice pages * * @param array|null $aBreadcrumbsEntry Current breadcrumbs entry to add * * @return \Combodo\iTop\Application\UI\Base\Layout\TopBar\TopBar * @throws \ConfigException * @throws \CoreException * @throws \CoreUnexpectedValue * @throws \MySQLException */ public static function MakeStandard(?array $aBreadcrumbsEntry = null) { $oTopBar = new TopBar(TopBar::BLOCK_CODE); if (utils::GetConfig()->Get('quick_create.enabled') === true) { $oTopBar->SetQuickCreate(QuickCreateFactory::MakeFromUserHistory()); } if (utils::GetConfig()->Get('global_search.enabled') === true) { $oTopBar->SetGlobalSearch(GlobalSearchFactory::MakeFromUserHistory()); } /** @var \iPopupMenuExtension $oExtensionInstance */ foreach (InterfaceDiscovery::GetInstance()->FindItopClasses('iPopupMenuExtension') as $oExtensionInstance) { foreach ($oExtensionInstance::EnumItems(iPopupMenuExtension::MENU_TOPBAR_ACTIONS, []) as $oMenuItem) { $oNewQuickAction = TopBarQuickActionFactory::MakeFromApplicationPopupItem($oMenuItem); if ($oNewQuickAction === null) { continue; } $oTopBar->AddQuickAction($oNewQuickAction); } } if (utils::GetConfig()->Get('breadcrumb.enabled') === true) { $oBreadcrumbs = new Breadcrumbs($aBreadcrumbsEntry, Breadcrumbs::BLOCK_CODE); $oTopBar->SetBreadcrumbs($oBreadcrumbs); } return $oTopBar; } }