[ Index ]

PHP Cross Reference of phpBB-3.3.14-deutsch

title

Body

[close]

/vendor/s9e/text-formatter/src/Configurator/TemplateChecks/ -> DisallowObjectParamsWithGeneratedName.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 DisallowObjectParamsWithGeneratedName extends TemplateCheck
  17  {
  18      /**
  19      * Check for <param> elements with a generated "name" attribute
  20      *
  21      * This check will reject <param> elements whose "name" attribute is generated by an
  22      * <xsl:attribute/> element. This is a setup that has no practical use and should be eliminated
  23      * because it makes it much harder to check the param's name, and therefore infer the type of
  24      * content it expects
  25      *
  26      * @param  DOMElement $template <xsl:template/> node
  27      * @param  Tag        $tag      Tag this template belongs to
  28      * @return void
  29      */
  30  	public function check(DOMElement $template, Tag $tag)
  31      {
  32          $xpath = new DOMXPath($template->ownerDocument);
  33          $query = '//object//param[contains(@name, "{") or .//xsl:attribute[translate(@name, "NAME", "name") = "name"]]';
  34          $nodes = $xpath->query($query);
  35  
  36          foreach ($nodes as $node)
  37          {
  38              throw new UnsafeTemplateException("A 'param' element with a suspect name has been found", $node);
  39          }
  40      }
  41  }


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