Path: blob/master/src/applications/people/engineextension/PeopleMainMenuBarExtension.php
12256 views
<?php12final class PeopleMainMenuBarExtension3extends PhabricatorMainMenuBarExtension {45const MAINMENUBARKEY = 'user';67public function isExtensionEnabledForViewer(PhabricatorUser $viewer) {8return $viewer->isLoggedIn();9}1011public function shouldRequireFullSession() {12return false;13}1415public function getExtensionOrder() {16return 1200;17}1819public function buildMainMenus() {20$viewer = $this->getViewer();21$application = $this->getApplication();22$dropdown_menu = $this->newDropdown($viewer, $application);2324$menu_id = celerity_generate_unique_node_id();2526Javelin::initBehavior(27'user-menu',28array(29'menuID' => $menu_id,30'menu' => $dropdown_menu->getDropdownMenuMetadata(),31));3233$image = $viewer->getProfileImageURI();34$profile_image = id(new PHUIIconView())35->setImage($image)36->setHeadSize(PHUIIconView::HEAD_SMALL);3738$user_menu = id(new PHUIButtonView())39->setID($menu_id)40->setTag('a')41->setHref('/p/'.$viewer->getUsername().'/')42->setIcon($profile_image)43->addClass('phabricator-core-user-menu')44->setHasCaret(true)45->setNoCSS(true)46->setAuralLabel(pht('Account Menu'));4748return array(49$user_menu,50);51}5253private function newDropdown(54PhabricatorUser $viewer,55$application) {5657$person_to_show = id(new PHUIObjectItemView())58->setObjectName($viewer->getRealName())59->setSubHead($viewer->getUsername())60->setImageURI($viewer->getProfileImageURI());6162$user_view = id(new PHUIObjectItemListView())63->setViewer($viewer)64->setFlush(true)65->setSimple(true)66->addItem($person_to_show)67->addClass('phabricator-core-user-profile-object');6869$view = id(new PhabricatorActionListView())70->setViewer($viewer);7172if ($this->getIsFullSession()) {73$view->addAction(74id(new PhabricatorActionView())75->appendChild($user_view));7677$view->addAction(78id(new PhabricatorActionView())79->setType(PhabricatorActionView::TYPE_DIVIDER));8081$view->addAction(82id(new PhabricatorActionView())83->setName(pht('Profile'))84->setHref('/p/'.$viewer->getUsername().'/'));8586$view->addAction(87id(new PhabricatorActionView())88->setName(pht('Settings'))89->setHref('/settings/user/'.$viewer->getUsername().'/'));9091$view->addAction(92id(new PhabricatorActionView())93->setName(pht('Manage'))94->setHref('/people/manage/'.$viewer->getID().'/'));9596if ($application) {97$help_links = $application->getHelpMenuItems($viewer);98if ($help_links) {99foreach ($help_links as $link) {100$view->addAction($link);101}102}103}104105$view->addAction(106id(new PhabricatorActionView())107->addSigil('logout-item')108->setType(PhabricatorActionView::TYPE_DIVIDER));109}110111$view->addAction(112id(new PhabricatorActionView())113->setName(pht('Log Out %s', $viewer->getUsername()))114->addSigil('logout-item')115->setHref('/logout/')116->setWorkflow(true));117118return $view;119}120121}122123124