Path: blob/master/src/applications/diffusion/document/DiffusionDocumentRenderingEngine.php
12241 views
<?php12final class DiffusionDocumentRenderingEngine3extends PhabricatorDocumentRenderingEngine {45private $diffusionRequest;67public function setDiffusionRequest(DiffusionRequest $drequest) {8$this->diffusionRequest = $drequest;9return $this;10}1112public function getDiffusionRequest() {13return $this->diffusionRequest;14}1516protected function newRefViewURI(17PhabricatorDocumentRef $ref,18PhabricatorDocumentEngine $engine) {1920$file = $ref->getFile();21$engine_key = $engine->getDocumentEngineKey();22$drequest = $this->getDiffusionRequest();2324return (string)$drequest->generateURI(25array(26'action' => 'browse',27'stable' => true,28'params' => array(29'as' => $engine_key,30),31));32}3334protected function newRefRenderURI(35PhabricatorDocumentRef $ref,36PhabricatorDocumentEngine $engine) {3738$engine_key = $engine->getDocumentEngineKey();3940$file = $ref->getFile();41$file_phid = $file->getPHID();4243$drequest = $this->getDiffusionRequest();4445return (string)$drequest->generateURI(46array(47'action' => 'document',48'stable' => true,49'params' => array(50'as' => $engine_key,51'filePHID' => $file_phid,52),53));54}5556protected function getSelectedDocumentEngineKey() {57return $this->getRequest()->getStr('as');58}5960protected function getSelectedLineRange() {61$range = $this->getDiffusionRequest()->getLine();62return AphrontRequest::parseURILineRange($range, 1000);63}6465protected function addApplicationCrumbs(66PHUICrumbsView $crumbs,67PhabricatorDocumentRef $ref = null) {68return;69}7071protected function willStageRef(PhabricatorDocumentRef $ref) {72$drequest = $this->getDiffusionRequest();7374$blame_uri = (string)$drequest->generateURI(75array(76'action' => 'blame',77'stable' => true,78));7980$ref->setBlameURI($blame_uri);81}8283protected function willRenderRef(PhabricatorDocumentRef $ref) {84$drequest = $this->getDiffusionRequest();8586$ref->setSymbolMetadata($this->getSymbolMetadata());8788$coverage = $drequest->loadCoverage();89if ($coverage !== null && strlen($coverage)) {90$ref->addCoverage($coverage);91}92}9394private function getSymbolMetadata() {95$drequest = $this->getDiffusionRequest();9697$repo = $drequest->getRepository();98$symbol_repos = nonempty($repo->getSymbolSources(), array());99$symbol_repos[] = $repo->getPHID();100101$lang = last(explode('.', $drequest->getPath()));102103return array(104'repositories' => $symbol_repos,105'lang' => $lang,106'path' => $drequest->getPath(),107);108}109110}111112113