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   * Validate all attributes in the tokens.
   5   */
   6  
   7  class HTMLPurifier_Strategy_ValidateAttributes extends HTMLPurifier_Strategy
   8  {
   9  
  10      /**
  11       * @param HTMLPurifier_Token[] $tokens
  12       * @param HTMLPurifier_Config $config
  13       * @param HTMLPurifier_Context $context
  14       * @return HTMLPurifier_Token[]
  15       */
  16      public function execute($tokens, $config, $context)
  17      {
  18          // setup validator
  19          $validator = new HTMLPurifier_AttrValidator();
  20  
  21          $token = false;
  22          $context->register('CurrentToken', $token);
  23  
  24          foreach ($tokens as $key => $token) {
  25  
  26              // only process tokens that have attributes,
  27              //   namely start and empty tags
  28              if (!$token instanceof HTMLPurifier_Token_Start && !$token instanceof HTMLPurifier_Token_Empty) {
  29                  continue;
  30              }
  31  
  32              // skip tokens that are armored
  33              if (!empty($token->armor['ValidateAttributes'])) {
  34                  continue;
  35              }
  36  
  37              // note that we have no facilities here for removing tokens
  38              $validator->validateToken($token, $config, $context);
  39          }
  40          $context->destroy('CurrentToken');
  41          return $tokens;
  42      }
  43  }
  44  
  45  // vim: et sw=4 sts=4