Path: blob/master/src/applications/diffusion/controller/DiffusionPathTreeController.php
12242 views
<?php12final class DiffusionPathTreeController extends DiffusionController {34public function handleRequest(AphrontRequest $request) {5$response = $this->loadDiffusionContext();6if ($response) {7return $response;8}910$drequest = $this->getDiffusionRequest();11$repository = $drequest->getRepository();1213if (!$repository->canUsePathTree()) {14return new Aphront404Response();15}1617$paths = $this->callConduitWithDiffusionRequest(18'diffusion.querypaths',19array(20'path' => $drequest->getPath(),21'commit' => $drequest->getCommit(),22));2324$tree = array();25foreach ($paths as $path) {26$parts = preg_split('((?<=/))', $path);27$cursor = &$tree;28foreach ($parts as $part) {29if (!is_array($cursor)) {30$cursor = array();31}32if (!isset($cursor[$part])) {33$cursor[$part] = 1;34}35$cursor = &$cursor[$part];36}37}3839return id(new AphrontAjaxResponse())->setContent(array('tree' => $tree));40}41}424344