Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 3.11.x will end 14 Nov 2022 (12 months plus 6 months extension).
  • Bug fixes for security issues in 3.11.x will end 13 Nov 2023 (18 months plus 12 months extension).
  • PHP version: minimum PHP 7.3.0 Note: minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is supported too.
   1  <?php
   2  
   3  /**

   4   * Represents a pre or post processing filter on HTML Purifier's output

   5   *

   6   * Sometimes, a little ad-hoc fixing of HTML has to be done before

   7   * it gets sent through HTML Purifier: you can use filters to acheive

   8   * this effect. For instance, YouTube videos can be preserved using

   9   * this manner. You could have used a decorator for this task, but

  10   * PHP's support for them is not terribly robust, so we're going

  11   * to just loop through the filters.

  12   *

  13   * Filters should be exited first in, last out. If there are three filters,

  14   * named 1, 2 and 3, the order of execution should go 1->preFilter,

  15   * 2->preFilter, 3->preFilter, purify, 3->postFilter, 2->postFilter,

  16   * 1->postFilter.

  17   *

  18   * @note Methods are not declared abstract as it is perfectly legitimate

  19   *       for an implementation not to want anything to happen on a step

  20   */
  21  
  22  class HTMLPurifier_Filter
  23  {
  24  
  25      /**

  26       * Name of the filter for identification purposes.

  27       * @type string

  28       */
  29      public $name;
  30  
  31      /**

  32       * Pre-processor function, handles HTML before HTML Purifier

  33       * @param string $html

  34       * @param HTMLPurifier_Config $config

  35       * @param HTMLPurifier_Context $context

  36       * @return string

  37       */
  38      public function preFilter($html, $config, $context)
  39      {
  40          return $html;
  41      }
  42  
  43      /**

  44       * Post-processor function, handles HTML after HTML Purifier

  45       * @param string $html

  46       * @param HTMLPurifier_Config $config

  47       * @param HTMLPurifier_Context $context

  48       * @return string

  49       */
  50      public function postFilter($html, $config, $context)
  51      {
  52          return $html;
  53      }
  54  }
  55  
  56  // vim: et sw=4 sts=4