@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
at upstream/main 55 lines 1.4 kB view raw
1<?php 2 3final class PhabricatorDatasourceEngine extends Phobject { 4 5 private $viewer; 6 7 public function setViewer(PhabricatorUser $viewer) { 8 $this->viewer = $viewer; 9 return $this; 10 } 11 12 public function getViewer() { 13 return $this->viewer; 14 } 15 16 public function getAllQuickSearchDatasources() { 17 return PhabricatorDatasourceEngineExtension::getAllQuickSearchDatasources(); 18 } 19 20 public function newJumpURI($query) { 21 $viewer = $this->getViewer(); 22 $extensions = PhabricatorDatasourceEngineExtension::getAllExtensions(); 23 24 foreach ($extensions as $extension) { 25 $jump_uri = id(clone $extension) 26 ->setViewer($viewer) 27 ->newJumpURI($query); 28 29 if ($jump_uri !== null) { 30 return $jump_uri; 31 } 32 } 33 34 return null; 35 } 36 37 public function newDatasourcesForCompositeDatasource( 38 PhabricatorTypeaheadCompositeDatasource $datasource) { 39 $viewer = $this->getViewer(); 40 $extensions = PhabricatorDatasourceEngineExtension::getAllExtensions(); 41 42 $sources = array(); 43 foreach ($extensions as $extension) { 44 $extension_sources = id(clone $extension) 45 ->setViewer($viewer) 46 ->newDatasourcesForCompositeDatasource($datasource); 47 foreach ($extension_sources as $extension_source) { 48 $sources[] = $extension_source; 49 } 50 } 51 52 return $sources; 53 } 54 55}