Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.2.x will end 22 April 2024 (12 months).
  • Bug fixes for security issues in 4.2.x will end 7 October 2024 (18 months).
  • PHP version: minimum PHP 8.0.0 Note: minimum PHP version has increased since Moodle 4.1. PHP 8.1.x is supported too.
   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