Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/people/engineextension/PeopleHovercardEngineExtension.php
12256 views
1
<?php
2
3
final class PeopleHovercardEngineExtension
4
extends PhabricatorHovercardEngineExtension {
5
6
const EXTENSIONKEY = 'people';
7
8
public function isExtensionEnabled() {
9
return true;
10
}
11
12
public function getExtensionName() {
13
return pht('User Accounts');
14
}
15
16
public function canRenderObjectHovercard($object) {
17
return ($object instanceof PhabricatorUser);
18
}
19
20
public function willRenderHovercards(array $objects) {
21
$viewer = $this->getViewer();
22
$phids = mpull($objects, 'getPHID');
23
24
$users = id(new PhabricatorPeopleQuery())
25
->setViewer($viewer)
26
->withPHIDs($phids)
27
->needAvailability(true)
28
->needProfileImage(true)
29
->needProfile(true)
30
->execute();
31
$users = mpull($users, null, 'getPHID');
32
33
return array(
34
'users' => $users,
35
);
36
}
37
38
public function renderHovercard(
39
PHUIHovercardView $hovercard,
40
PhabricatorObjectHandle $handle,
41
$object,
42
$data) {
43
$viewer = $this->getViewer();
44
45
$user = idx($data['users'], $object->getPHID());
46
if (!$user) {
47
return;
48
}
49
50
$is_exiled = $hovercard->getIsExiled();
51
52
$user_card = id(new PhabricatorUserCardView())
53
->setProfile($user)
54
->setViewer($viewer)
55
->setIsExiled($is_exiled);
56
57
$hovercard->appendChild($user_card);
58
}
59
60
}
61
62