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.1 kB · 42 lines
PHP
at commit dc7d0b4a
12345678910111213141516171819202122232425262728293031323334353637383940414243<?php
final class DiffusionPathTreeController extends DiffusionController {
public function handleRequest(AphrontRequest $request) { $response = $this->loadDiffusionContext(); if ($response) { return $response; }
$drequest = $this->getDiffusionRequest(); $repository = $drequest->getRepository();
if (!$repository->canUsePathTree()) { return new Aphront404Response(); }
$paths = $this->callConduitWithDiffusionRequest( 'diffusion.querypaths', array( 'path' => $drequest->getPath(), 'commit' => $drequest->getCommit(), ));
$tree = array(); foreach ($paths as $path) { $parts = preg_split('((?<=/))', $path); $cursor = &$tree; foreach ($parts as $part) { if (!is_array($cursor)) { $cursor = array(); } if (!isset($cursor[$part])) { $cursor[$part] = 1; } $cursor = &$cursor[$part]; } }
return id(new AphrontAjaxResponse())->setContent(array('tree' => $tree)); }}