[ Index ] |
PHP Cross Reference of phpBB-3.2.11-deutsch |
[Summary view] [Print] [Text view]
1 <?php 2 3 /* 4 * @package s9e\TextFormatter 5 * @copyright Copyright (c) 2010-2019 The s9e Authors 6 * @license http://www.opensource.org/licenses/mit-license.php The MIT License 7 */ 8 namespace s9e\TextFormatter\Configurator\TemplateNormalizations; 9 use DOMNode; 10 class ConvertCurlyExpressionsInText extends AbstractNormalization 11 { 12 protected $queries = ['//*[namespace-uri() != $XSL]/text()[contains(., "{@") or contains(., "{$")]']; 13 protected function insertTextBefore($text, $node) 14 { 15 if ($text > '') 16 $node->parentNode->insertBefore($this->createText($text), $node); 17 } 18 protected function normalizeNode(DOMNode $node) 19 { 20 $parentNode = $node->parentNode; 21 \preg_match_all( 22 '#\\{([$@][-\\w]+)\\}#', 23 $node->textContent, 24 $matches, 25 \PREG_SET_ORDER | \PREG_OFFSET_CAPTURE 26 ); 27 $lastPos = 0; 28 foreach ($matches as $m) 29 { 30 $pos = $m[0][1]; 31 if ($pos > $lastPos) 32 { 33 $text = \substr($node->textContent, $lastPos, $pos - $lastPos); 34 $this->insertTextBefore($text, $node); 35 } 36 $lastPos = $pos + \strlen($m[0][0]); 37 $parentNode 38 ->insertBefore($this->createElement('xsl:value-of'), $node) 39 ->setAttribute('select', $m[1][0]); 40 } 41 $text = \substr($node->textContent, $lastPos); 42 $this->insertTextBefore($text, $node); 43 $parentNode->removeChild($node); 44 } 45 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Nov 11 20:33:01 2020 | Cross-referenced by PHPXref 0.7.1 |