[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/infrastructure/markup/ -> PhabricatorMarkupOneOff.php (source)

   1  <?php
   2  
   3  /**
   4   * Concrete object for accessing the markup engine with arbitrary blobs of
   5   * text, like form instructions. Usage:
   6   *
   7   *   $output = PhabricatorMarkupEngine::renderOneObject(
   8   *     id(new PhabricatorMarkupOneOff())->setContent($some_content),
   9   *     'default',
  10   *     $viewer);
  11   *
  12   * This is less efficient than batching rendering, but appropriate for small
  13   * amounts of one-off text in form instructions.
  14   */
  15  final class PhabricatorMarkupOneOff implements PhabricatorMarkupInterface {
  16  
  17    private $content;
  18    private $preserveLinebreaks;
  19    private $engineRuleset;
  20  
  21    public function setEngineRuleset($engine_ruleset) {
  22      $this->engineRuleset = $engine_ruleset;
  23      return $this;
  24    }
  25  
  26    public function getEngineRuleset() {
  27      return $this->engineRuleset;
  28    }
  29  
  30    public function setPreserveLinebreaks($preserve_linebreaks) {
  31      $this->preserveLinebreaks = $preserve_linebreaks;
  32      return $this;
  33    }
  34  
  35    public function setContent($content) {
  36      $this->content = $content;
  37      return $this;
  38    }
  39  
  40    public function getContent() {
  41      return $this->content;
  42    }
  43  
  44    public function getMarkupFieldKey($field) {
  45      return PhabricatorHash::digestForIndex($this->getContent()).':oneoff';
  46    }
  47  
  48    public function newMarkupEngine($field) {
  49      if ($this->engineRuleset) {
  50        return PhabricatorMarkupEngine::getEngine($this->engineRuleset);
  51      } else if ($this->preserveLinebreaks) {
  52        return PhabricatorMarkupEngine::getEngine();
  53      } else {
  54        return PhabricatorMarkupEngine::getEngine('nolinebreaks');
  55      }
  56    }
  57  
  58    public function getMarkupText($field) {
  59      return $this->getContent();
  60    }
  61  
  62    public function didMarkupText(
  63      $field,
  64      $output,
  65      PhutilMarkupEngine $engine) {
  66  
  67      require_celerity_resource('phabricator-remarkup-css');
  68      return phutil_tag(
  69        'div',
  70        array(
  71          'class' => 'phabricator-remarkup',
  72        ),
  73        $output);
  74    }
  75  
  76    public function shouldUseMarkupCache($field) {
  77      return true;
  78    }
  79  
  80  }


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