Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.2.x will end 22 April 2024 (12 months).
  • Bug fixes for security issues in 4.2.x will end 7 October 2024 (18 months).
  • PHP version: minimum PHP 8.0.0 Note: minimum PHP version has increased since Moodle 4.1. PHP 8.1.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