@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 PhabricatorSpacesExportEngineExtension
4 extends PhabricatorExportEngineExtension {
5
6 const EXTENSIONKEY = 'spaces';
7
8 public function supportsObject($object) {
9 $viewer = $this->getViewer();
10
11 if (!PhabricatorSpacesNamespaceQuery::getViewerSpacesExist($viewer)) {
12 return false;
13 }
14
15 return ($object instanceof PhabricatorSpacesInterface);
16 }
17
18 public function newExportFields() {
19 return array(
20 id(new PhabricatorPHIDExportField())
21 ->setKey('spacePHID')
22 ->setLabel(pht('Space PHID')),
23 id(new PhabricatorStringExportField())
24 ->setKey('space')
25 ->setLabel(pht('Space')),
26 );
27 }
28
29 public function newExportData(array $objects) {
30 $viewer = $this->getViewer();
31
32 $space_phids = array();
33 foreach ($objects as $object) {
34 $space_phids[] = PhabricatorSpacesNamespaceQuery::getObjectSpacePHID(
35 $object);
36 }
37 $handles = $viewer->loadHandles($space_phids);
38
39 $map = array();
40 foreach ($objects as $object) {
41 $space_phid = PhabricatorSpacesNamespaceQuery::getObjectSpacePHID(
42 $object);
43
44 $map[] = array(
45 'spacePHID' => $space_phid,
46 'space' => $handles[$space_phid]->getName(),
47 );
48 }
49
50 return $map;
51 }
52
53}