Path: blob/master/src/applications/people/engineextension/PeopleHovercardEngineExtension.php
12256 views
<?php12final class PeopleHovercardEngineExtension3extends PhabricatorHovercardEngineExtension {45const EXTENSIONKEY = 'people';67public function isExtensionEnabled() {8return true;9}1011public function getExtensionName() {12return pht('User Accounts');13}1415public function canRenderObjectHovercard($object) {16return ($object instanceof PhabricatorUser);17}1819public function willRenderHovercards(array $objects) {20$viewer = $this->getViewer();21$phids = mpull($objects, 'getPHID');2223$users = id(new PhabricatorPeopleQuery())24->setViewer($viewer)25->withPHIDs($phids)26->needAvailability(true)27->needProfileImage(true)28->needProfile(true)29->execute();30$users = mpull($users, null, 'getPHID');3132return array(33'users' => $users,34);35}3637public function renderHovercard(38PHUIHovercardView $hovercard,39PhabricatorObjectHandle $handle,40$object,41$data) {42$viewer = $this->getViewer();4344$user = idx($data['users'], $object->getPHID());45if (!$user) {46return;47}4849$is_exiled = $hovercard->getIsExiled();5051$user_card = id(new PhabricatorUserCardView())52->setProfile($user)53->setViewer($viewer)54->setIsExiled($is_exiled);5556$hovercard->appendChild($user_card);57}5859}606162