Changeset View
Changeset View
Standalone View
Standalone View
src/view/page/menu/PhabricatorMainMenuView.php
Show First 20 Lines • Show All 76 Lines • ▼ Show 20 Lines | if ($aural) { | ||||
$aural = javelin_tag( | $aural = javelin_tag( | ||||
'span', | 'span', | ||||
array( | array( | ||||
'aural' => true, | 'aural' => true, | ||||
), | ), | ||||
phutil_implode_html(' ', $aural)); | phutil_implode_html(' ', $aural)); | ||||
} | } | ||||
// Build out Header Menus | |||||
$applications = PhabricatorApplication::getAllInstalledApplications(); | |||||
$menus = array(); | |||||
$controller = $this->getController(); | |||||
foreach ($applications as $application) { | |||||
$app_extra = $application->buildMainMenuExtraNodes( | |||||
$viewer, | |||||
$controller); | |||||
if ($app_extra !== null) { | |||||
$menus[] = $app_extra; | |||||
} | |||||
} | |||||
$extensions = PhabricatorMainMenuBarExtension::getAllEnabledExtensions(); | $extensions = PhabricatorMainMenuBarExtension::getAllEnabledExtensions(); | ||||
foreach ($extensions as $extension) { | foreach ($extensions as $extension) { | ||||
$extension->setViewer($viewer); | $extension->setViewer($viewer); | ||||
$controller = $this->getController(); | $controller = $this->getController(); | ||||
if ($controller) { | if ($controller) { | ||||
$extension->setController($controller); | $extension->setController($controller); | ||||
$application = $controller->getCurrentApplication(); | $application = $controller->getCurrentApplication(); | ||||
if ($application) { | if ($application) { | ||||
$extension->setApplication($application); | $extension->setApplication($application); | ||||
} | } | ||||
} | } | ||||
} | } | ||||
foreach ($extensions as $key => $extension) { | foreach ($extensions as $key => $extension) { | ||||
if (!$extension->isExtensionEnabledForViewer($extension->getViewer())) { | if (!$extension->isExtensionEnabledForViewer($extension->getViewer())) { | ||||
unset($extensions[$key]); | unset($extensions[$key]); | ||||
} | } | ||||
} | } | ||||
// Builds out "login" button | $menus = array(); | ||||
foreach ($extensions as $extension) { | foreach ($extensions as $extension) { | ||||
foreach ($extension->buildMainMenus() as $menu) { | foreach ($extension->buildMainMenus() as $menu) { | ||||
$menus[] = $menu; | $menus[] = $menu; | ||||
} | } | ||||
} | } | ||||
// Because we display these with "float: right", reverse their order before | |||||
// rendering them into the document so that the extension order and display | |||||
// order are the same. | |||||
$menus = array_reverse($menus); | |||||
foreach ($menus as $menu) { | foreach ($menus as $menu) { | ||||
$menu_bar[] = $menu; | $menu_bar[] = $menu; | ||||
} | } | ||||
$classes = array(); | $classes = array(); | ||||
$classes[] = 'phabricator-main-menu'; | $classes[] = 'phabricator-main-menu'; | ||||
$classes[] = 'phabricator-main-menu-background'; | $classes[] = 'phabricator-main-menu-background'; | ||||
▲ Show 20 Lines • Show All 491 Lines • Show Last 20 Lines |