@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.)
hq.recaptime.dev/wiki/Phorge
phorge
phabricator
1<?php
2
3final class PhabricatorProjectsSearchEngineAttachment
4 extends PhabricatorSearchEngineAttachment {
5
6 public function getAttachmentName() {
7 return pht('Projects');
8 }
9
10 public function getAttachmentDescription() {
11 return pht('Get information about projects.');
12 }
13
14 public function loadAttachmentData(array $objects, $spec) {
15 $object_phids = mpull($objects, 'getPHID');
16
17 $projects_query = id(new PhabricatorEdgeQuery())
18 ->withSourcePHIDs($object_phids)
19 ->withEdgeTypes(
20 array(
21 PhabricatorProjectObjectHasProjectEdgeType::EDGECONST,
22 ));
23 $projects_query->execute();
24
25 return array(
26 'projects.query' => $projects_query,
27 );
28 }
29
30 public function getAttachmentForObject($object, $data, $spec) {
31 $projects_query = $data['projects.query'];
32 $object_phid = $object->getPHID();
33
34 $project_phids = $projects_query->getDestinationPHIDs(
35 array($object_phid),
36 array(PhabricatorProjectObjectHasProjectEdgeType::EDGECONST));
37
38 return array(
39 'projectPHIDs' => array_values($project_phids),
40 );
41 }
42
43}