Path: blob/master/src/applications/people/engine/PhabricatorPeopleProfileMenuEngine.php
12256 views
<?php12final class PhabricatorPeopleProfileMenuEngine3extends PhabricatorProfileMenuEngine {45const ITEM_PROFILE = 'people.profile';6const ITEM_MANAGE = 'people.manage';7const ITEM_PICTURE = 'people.picture';8const ITEM_BADGES = 'people.badges';9const ITEM_TASKS = 'people.tasks';10const ITEM_COMMITS = 'people.commits';11const ITEM_REVISIONS = 'people.revisions';1213protected function isMenuEngineConfigurable() {14return false;15}1617public function getItemURI($path) {18$user = $this->getProfileObject();19$username = $user->getUsername();20$username = phutil_escape_uri($username);21return "/p/{$username}/item/{$path}";22}2324protected function getBuiltinProfileItems($object) {25$viewer = $this->getViewer();2627$items = array();2829$items[] = $this->newItem()30->setBuiltinKey(self::ITEM_PICTURE)31->setMenuItemKey(PhabricatorPeoplePictureProfileMenuItem::MENUITEMKEY);3233$items[] = $this->newItem()34->setBuiltinKey(self::ITEM_PROFILE)35->setMenuItemKey(PhabricatorPeopleDetailsProfileMenuItem::MENUITEMKEY);3637$have_badges = PhabricatorApplication::isClassInstalledForViewer(38'PhabricatorBadgesApplication',39$viewer);40if ($have_badges) {41$items[] = $this->newItem()42->setBuiltinKey(self::ITEM_BADGES)43->setMenuItemKey(PhabricatorPeopleBadgesProfileMenuItem::MENUITEMKEY);44}4546$have_maniphest = PhabricatorApplication::isClassInstalledForViewer(47'PhabricatorManiphestApplication',48$viewer);49if ($have_maniphest) {50$items[] = $this->newItem()51->setBuiltinKey(self::ITEM_TASKS)52->setMenuItemKey(PhabricatorPeopleTasksProfileMenuItem::MENUITEMKEY);53}5455$have_differential = PhabricatorApplication::isClassInstalledForViewer(56'PhabricatorDifferentialApplication',57$viewer);58if ($have_differential) {59$items[] = $this->newItem()60->setBuiltinKey(self::ITEM_REVISIONS)61->setMenuItemKey(62PhabricatorPeopleRevisionsProfileMenuItem::MENUITEMKEY);63}6465$have_diffusion = PhabricatorApplication::isClassInstalledForViewer(66'PhabricatorDiffusionApplication',67$viewer);68if ($have_diffusion) {69$items[] = $this->newItem()70->setBuiltinKey(self::ITEM_COMMITS)71->setMenuItemKey(PhabricatorPeopleCommitsProfileMenuItem::MENUITEMKEY);72}7374$items[] = $this->newItem()75->setBuiltinKey(self::ITEM_MANAGE)76->setMenuItemKey(PhabricatorPeopleManageProfileMenuItem::MENUITEMKEY);7778return $items;79}8081}828384