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   * 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