Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.0.x will end 8 May 2023 (12 months).
  • Bug fixes for security issues in 4.0.x will end 13 November 2023 (18 months).
  • PHP version: minimum PHP 7.3.0 Note: the minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is also supported.
   1  <?php
   2  
   3  /**

   4   * Concrete element node class.

   5   */
   6  class HTMLPurifier_Node_Element extends HTMLPurifier_Node
   7  {
   8      /**

   9       * The lower-case name of the tag, like 'a', 'b' or 'blockquote'.

  10       *

  11       * @note Strictly speaking, XML tags are case sensitive, so we shouldn't

  12       * be lower-casing them, but these tokens cater to HTML tags, which are

  13       * insensitive.

  14       * @type string

  15       */
  16      public $name;
  17  
  18      /**

  19       * Associative array of the node's attributes.

  20       * @type array

  21       */
  22      public $attr = array();
  23  
  24      /**

  25       * List of child elements.

  26       * @type array

  27       */
  28      public $children = array();
  29  
  30      /**

  31       * Does this use the <a></a> form or the </a> form, i.e.

  32       * is it a pair of start/end tokens or an empty token.

  33       * @bool

  34       */
  35      public $empty = false;
  36  
  37      public $endCol = null, $endLine = null, $endArmor = array();
  38  
  39      public function __construct($name, $attr = array(), $line = null, $col = null, $armor = array()) {
  40          $this->name = $name;
  41          $this->attr = $attr;
  42          $this->line = $line;
  43          $this->col = $col;
  44          $this->armor = $armor;
  45      }
  46  
  47      public function toTokenPair() {
  48          // XXX inefficiency here, normalization is not necessary

  49          if ($this->empty) {
  50              return array(new HTMLPurifier_Token_Empty($this->name, $this->attr, $this->line, $this->col, $this->armor), null);
  51          } else {
  52              $start = new HTMLPurifier_Token_Start($this->name, $this->attr, $this->line, $this->col, $this->armor);
  53              $end = new HTMLPurifier_Token_End($this->name, array(), $this->endLine, $this->endCol, $this->endArmor);
  54              //$end->start = $start;

  55              return array($start, $end);
  56          }
  57      }
  58  }
  59