Path: blob/master/src/applications/paste/remarkup/PhabricatorPasteRemarkupRule.php
12242 views
<?php12final class PhabricatorPasteRemarkupRule extends PhabricatorObjectRemarkupRule {34protected function getObjectNamePrefix() {5return 'P';6}78protected function loadObjects(array $ids) {9$viewer = $this->getEngine()->getConfig('viewer');1011return id(new PhabricatorPasteQuery())12->setViewer($viewer)13->withIDs($ids)14->needContent(true)15->execute();1617}1819protected function renderObjectEmbed(20$object,21PhabricatorObjectHandle $handle,22$options) {2324$embed_paste = id(new PasteEmbedView())25->setPaste($object)26->setHandle($handle);2728if (strlen($options)) {29$parser = new PhutilSimpleOptions();30$opts = $parser->parse(substr($options, 1));3132foreach ($opts as $key => $value) {33if ($key == 'lines') {34$embed_paste->setLines(preg_replace('/[^0-9]/', '', $value));35} else if ($key == 'highlight') {36$highlights = preg_split('/,|&/', preg_replace('/\s+/', '', $value));3738$to_highlight = array();39foreach ($highlights as $highlight) {40$highlight = explode('-', $highlight);4142if (!empty($highlight)) {43sort($highlight);44$to_highlight = array_merge(45$to_highlight,46range(head($highlight), last($highlight)));47}48}4950$embed_paste->setHighlights(array_unique($to_highlight));51}52}5354}5556return $embed_paste;57}5859}606162