[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
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 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Nov 30 09:20:46 2014 | Cross-referenced by PHPXref 0.7.1 |