Something went wrong. Try again.
@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
Something went wrong. Try again.
1.4 kB · 77 lines
PHP
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778<?php
abstract class PhorgePHPASTViewPanelController extends PhabricatorXHPASTViewController {
private $id; private $storageTree;
public function shouldAllowPublic() { return true; }
public function willProcessRequest(array $data) { // Load the parser now to ensure the autoloader for PHP-Parser is available. PhutilPHPParserLibrary::getParser();
$this->id = $data['id']; $this->storageTree = id(new PhorgePHPASTParseTree()) ->load($this->id);
if (!$this->storageTree) { throw new Exception(pht('No such AST!')); } }
protected function getStorageTree() { return $this->storageTree; }
protected function buildPHPASTViewPanelResponse($content) { $content = hsprintf( '<!DOCTYPE html>'. '<html>'. '<head>'. '<style>body { white-space: pre; font: 10px "Monaco"; cursor: pointer;}
.token { padding: 2px 4px; margin: 2px 2px; border: 1px solid #bbbbbb; line-height: 24px;}
ul { margin: 0 0 0 1em; padding: 0; list-style: none; line-height: 1em;}
li { margin: 0; padding: 0;}
li span { background: #dddddd; padding: 3px 6px;}
</style>'. '</head>'. '<body>%s</body>'. '</html>', $content);
return id(new AphrontWebpageResponse()) ->setFrameable(true) ->setContent($content); }
}