Search moodle.org's
Developer Documentation

See Release Notes
Long Term Support Release

  • Bug fixes for general core bugs in 4.1.x will end 13 November 2023 (12 months).
  • Bug fixes for security issues in 4.1.x will end 10 November 2025 (36 months).
  • PHP version: minimum PHP 7.4.0 Note: minimum PHP version has increased since Moodle 4.0. PHP 8.0.x is supported too.
   1  <?php
   2  
   3  /**
   4   * Definition that allows a set of elements, and allows no children.
   5   * @note This is a hack to reuse code from HTMLPurifier_ChildDef_Required,
   6   *       really, one shouldn't inherit from the other.  Only altered behavior
   7   *       is to overload a returned false with an array.  Thus, it will never
   8   *       return false.
   9   */
  10  class HTMLPurifier_ChildDef_Optional extends HTMLPurifier_ChildDef_Required
  11  {
  12      /**
  13       * @type bool
  14       */
  15      public $allow_empty = true;
  16  
  17      /**
  18       * @type string
  19       */
  20      public $type = 'optional';
  21  
  22      /**
  23       * @param array $children
  24       * @param HTMLPurifier_Config $config
  25       * @param HTMLPurifier_Context $context
  26       * @return array
  27       */
  28      public function validateChildren($children, $config, $context)
  29      {
  30          $result = parent::validateChildren($children, $config, $context);
  31          // we assume that $children is not modified
  32          if ($result === false) {
  33              if (empty($children)) {
  34                  return true;
  35              } elseif ($this->whitespace) {
  36                  return $children;
  37              } else {
  38                  return array();
  39              }
  40          }
  41          return $result;
  42      }
  43  }
  44  
  45  // vim: et sw=4 sts=4