[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/doorkeeper/remarkup/ -> DoorkeeperRemarkupRule.php (source)

   1  <?php
   2  
   3  abstract class DoorkeeperRemarkupRule extends PhutilRemarkupRule {
   4  
   5    const KEY_TAGS = 'doorkeeper.tags';
   6  
   7    public function getPriority() {
   8      return 350.0;
   9    }
  10  
  11    protected function addDoorkeeperTag(array $spec) {
  12      $key = self::KEY_TAGS;
  13      $engine = $this->getEngine();
  14      $token = $engine->storeText(get_class($this));
  15  
  16      $tags = $engine->getTextMetadata($key, array());
  17  
  18      $tags[] = array(
  19        'token' => $token,
  20      ) + $spec + array(
  21        'extra' => array(),
  22      );
  23  
  24      $engine->setTextMetadata($key, $tags);
  25      return $token;
  26    }
  27  
  28    public function didMarkupText() {
  29      $key = self::KEY_TAGS;
  30      $engine = $this->getEngine();
  31      $tags = $engine->getTextMetadata($key, array());
  32  
  33      if (!$tags) {
  34        return;
  35      }
  36  
  37      $refs = array();
  38      foreach ($tags as $spec) {
  39        $tag_id = celerity_generate_unique_node_id();
  40  
  41        $refs[] = array(
  42          'id' => $tag_id,
  43        ) + $spec['tag'];
  44  
  45        if ($this->getEngine()->isTextMode()) {
  46          $view = $spec['href'];
  47        } else {
  48          $view = id(new PHUITagView())
  49            ->setID($tag_id)
  50            ->setName($this->assertFlatText($spec['href']))
  51            ->setHref($this->assertFlatText($spec['href']))
  52            ->setType(PHUITagView::TYPE_OBJECT)
  53            ->setExternal(true);
  54        }
  55  
  56        $engine->overwriteStoredText($spec['token'], $view);
  57      }
  58  
  59      Javelin::initBehavior('doorkeeper-tag', array('tags' => $refs));
  60  
  61      $engine->setTextMetadata($key, array());
  62    }
  63  
  64  }


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