[ Index ]

PHP Cross Reference of phpBB-3.3.14-deutsch

title

Body

[close]

/vendor/s9e/text-formatter/src/Configurator/TemplateChecks/ -> DisallowNodeByXPath.php (source)

   1  <?php
   2  
   3  /**
   4  * @package   s9e\TextFormatter
   5  * @copyright Copyright (c) 2010-2022 The s9e authors
   6  * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
   7  */
   8  namespace s9e\TextFormatter\Configurator\TemplateChecks;
   9  
  10  use DOMElement;
  11  use DOMXPath;
  12  use s9e\TextFormatter\Configurator\Exceptions\UnsafeTemplateException;
  13  use s9e\TextFormatter\Configurator\Items\Tag;
  14  use s9e\TextFormatter\Configurator\TemplateCheck;
  15  
  16  class DisallowNodeByXPath extends TemplateCheck
  17  {
  18      /**
  19      * @var string XPath query used for locating nodes
  20      */
  21      public $query;
  22  
  23      /**
  24      * Constructor
  25      *
  26      * @param  string $query XPath query used for locating nodes
  27      */
  28  	public function __construct($query)
  29      {
  30          $this->query = $query;
  31      }
  32  
  33      /**
  34      * Test for the presence of an element of given name
  35      *
  36      * @param  DOMElement $template <xsl:template/> node
  37      * @param  Tag        $tag      Tag this template belongs to
  38      * @return void
  39      */
  40  	public function check(DOMElement $template, Tag $tag)
  41      {
  42          $xpath = new DOMXPath($template->ownerDocument);
  43  
  44          foreach ($xpath->query($this->query) as $node)
  45          {
  46              throw new UnsafeTemplateException("Node '" . $node->nodeName . "' is disallowed because it matches '" . $this->query . "'", $node);
  47          }
  48      }
  49  }


Generated: Mon Nov 25 19:05:08 2024 Cross-referenced by PHPXref 0.7.1