[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/uiexample/controller/ -> PhabricatorUIExampleRenderController.php (source)

   1  <?php
   2  
   3  final class PhabricatorUIExampleRenderController extends PhabricatorController {
   4  
   5    private $class;
   6  
   7    public function shouldAllowPublic() {
   8      return true;
   9    }
  10  
  11    public function willProcessRequest(array $data) {
  12      $this->class = idx($data, 'class');
  13    }
  14  
  15    public function processRequest() {
  16  
  17      $classes = id(new PhutilSymbolLoader())
  18        ->setAncestorClass('PhabricatorUIExample')
  19        ->loadObjects();
  20      $classes = msort($classes, 'getName');
  21  
  22      $nav = new AphrontSideNavFilterView();
  23      $nav->setBaseURI(new PhutilURI($this->getApplicationURI('view/')));
  24  
  25      foreach ($classes as $class => $obj) {
  26        $name = $obj->getName();
  27        $nav->addFilter($class, $name);
  28      }
  29  
  30      $selected = $nav->selectFilter($this->class, head_key($classes));
  31  
  32      $example = $classes[$selected];
  33      $example->setRequest($this->getRequest());
  34  
  35      $result = $example->renderExample();
  36      if ($result instanceof AphrontResponse) {
  37        // This allows examples to generate dialogs, etc., for demonstration.
  38        return $result;
  39      }
  40  
  41      require_celerity_resource('phabricator-ui-example-css');
  42  
  43      $crumbs = $this->buildApplicationCrumbs();
  44      $crumbs->addTextCrumb($example->getName());
  45  
  46      $header = id(new PHUIHeaderView())
  47        ->setHeader(pht('%s (%s)', $example->getName(), get_class($example)))
  48        ->setSubheader($example->getDescription())
  49        ->setNoBackground(true);
  50  
  51      $nav->appendChild(
  52        array(
  53          $crumbs,
  54          $header,
  55          phutil_tag('br'),
  56          $result,
  57        ));
  58  
  59      return $this->buildApplicationPage(
  60        $nav,
  61        array(
  62          'title'   => $example->getName(),
  63        ));
  64    }
  65  
  66  }


Generated: Sun Nov 30 09:20:46 2014 Cross-referenced by PHPXref 0.7.1