Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/people/engine/PhabricatorPeopleProfileMenuEngine.php
12256 views
1
<?php
2
3
final class PhabricatorPeopleProfileMenuEngine
4
extends PhabricatorProfileMenuEngine {
5
6
const ITEM_PROFILE = 'people.profile';
7
const ITEM_MANAGE = 'people.manage';
8
const ITEM_PICTURE = 'people.picture';
9
const ITEM_BADGES = 'people.badges';
10
const ITEM_TASKS = 'people.tasks';
11
const ITEM_COMMITS = 'people.commits';
12
const ITEM_REVISIONS = 'people.revisions';
13
14
protected function isMenuEngineConfigurable() {
15
return false;
16
}
17
18
public function getItemURI($path) {
19
$user = $this->getProfileObject();
20
$username = $user->getUsername();
21
$username = phutil_escape_uri($username);
22
return "/p/{$username}/item/{$path}";
23
}
24
25
protected function getBuiltinProfileItems($object) {
26
$viewer = $this->getViewer();
27
28
$items = array();
29
30
$items[] = $this->newItem()
31
->setBuiltinKey(self::ITEM_PICTURE)
32
->setMenuItemKey(PhabricatorPeoplePictureProfileMenuItem::MENUITEMKEY);
33
34
$items[] = $this->newItem()
35
->setBuiltinKey(self::ITEM_PROFILE)
36
->setMenuItemKey(PhabricatorPeopleDetailsProfileMenuItem::MENUITEMKEY);
37
38
$have_badges = PhabricatorApplication::isClassInstalledForViewer(
39
'PhabricatorBadgesApplication',
40
$viewer);
41
if ($have_badges) {
42
$items[] = $this->newItem()
43
->setBuiltinKey(self::ITEM_BADGES)
44
->setMenuItemKey(PhabricatorPeopleBadgesProfileMenuItem::MENUITEMKEY);
45
}
46
47
$have_maniphest = PhabricatorApplication::isClassInstalledForViewer(
48
'PhabricatorManiphestApplication',
49
$viewer);
50
if ($have_maniphest) {
51
$items[] = $this->newItem()
52
->setBuiltinKey(self::ITEM_TASKS)
53
->setMenuItemKey(PhabricatorPeopleTasksProfileMenuItem::MENUITEMKEY);
54
}
55
56
$have_differential = PhabricatorApplication::isClassInstalledForViewer(
57
'PhabricatorDifferentialApplication',
58
$viewer);
59
if ($have_differential) {
60
$items[] = $this->newItem()
61
->setBuiltinKey(self::ITEM_REVISIONS)
62
->setMenuItemKey(
63
PhabricatorPeopleRevisionsProfileMenuItem::MENUITEMKEY);
64
}
65
66
$have_diffusion = PhabricatorApplication::isClassInstalledForViewer(
67
'PhabricatorDiffusionApplication',
68
$viewer);
69
if ($have_diffusion) {
70
$items[] = $this->newItem()
71
->setBuiltinKey(self::ITEM_COMMITS)
72
->setMenuItemKey(PhabricatorPeopleCommitsProfileMenuItem::MENUITEMKEY);
73
}
74
75
$items[] = $this->newItem()
76
->setBuiltinKey(self::ITEM_MANAGE)
77
->setMenuItemKey(PhabricatorPeopleManageProfileMenuItem::MENUITEMKEY);
78
79
return $items;
80
}
81
82
}
83
84