Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 3.10.x will end 8 November 2021 (12 months).
  • Bug fixes for security issues in 3.10.x will end 9 May 2022 (18 months).
  • PHP version: minimum PHP 7.2.0 Note: minimum PHP version has increased since Moodle 3.8. PHP 7.3.x and 7.4.x are supported too.
   1  <?php
   2  
   3  /**

   4   * Decorator that, depending on a token, switches between two definitions.

   5   */
   6  class HTMLPurifier_AttrDef_Switch
   7  {
   8  
   9      /**

  10       * @type string

  11       */
  12      protected $tag;
  13  
  14      /**

  15       * @type HTMLPurifier_AttrDef

  16       */
  17      protected $withTag;
  18  
  19      /**

  20       * @type HTMLPurifier_AttrDef

  21       */
  22      protected $withoutTag;
  23  
  24      /**

  25       * @param string $tag Tag name to switch upon

  26       * @param HTMLPurifier_AttrDef $with_tag Call if token matches tag

  27       * @param HTMLPurifier_AttrDef $without_tag Call if token doesn't match, or there is no token

  28       */
  29      public function __construct($tag, $with_tag, $without_tag)
  30      {
  31          $this->tag = $tag;
  32          $this->withTag = $with_tag;
  33          $this->withoutTag = $without_tag;
  34      }
  35  
  36      /**

  37       * @param string $string

  38       * @param HTMLPurifier_Config $config

  39       * @param HTMLPurifier_Context $context

  40       * @return bool|string

  41       */
  42      public function validate($string, $config, $context)
  43      {
  44          $token = $context->get('CurrentToken', true);
  45          if (!$token || $token->name !== $this->tag) {
  46              return $this->withoutTag->validate($string, $config, $context);
  47          } else {
  48              return $this->withTag->validate($string, $config, $context);
  49          }
  50      }
  51  }
  52  
  53  // vim: et sw=4 sts=4