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   * XHTML 1.1 Image Module provides basic image embedding.

   5   * @note There is specialized code for removing empty images in

   6   *       HTMLPurifier_Strategy_RemoveForeignElements

   7   */
   8  class HTMLPurifier_HTMLModule_Image extends HTMLPurifier_HTMLModule
   9  {
  10  
  11      /**

  12       * @type string

  13       */
  14      public $name = 'Image';
  15  
  16      /**

  17       * @param HTMLPurifier_Config $config

  18       */
  19      public function setup($config)
  20      {
  21          $max = $config->get('HTML.MaxImgLength');
  22          $img = $this->addElement(
  23              'img',
  24              'Inline',
  25              'Empty',
  26              'Common',
  27              array(
  28                  'alt*' => 'Text',
  29                  // According to the spec, it's Length, but percents can

  30                  // be abused, so we allow only Pixels.

  31                  'height' => 'Pixels#' . $max,
  32                  'width' => 'Pixels#' . $max,
  33                  'longdesc' => 'URI',
  34                  'src*' => new HTMLPurifier_AttrDef_URI(true), // embedded
  35              )
  36          );
  37          if ($max === null || $config->get('HTML.Trusted')) {
  38              $img->attr['height'] =
  39              $img->attr['width'] = 'Length';
  40          }
  41  
  42          // kind of strange, but splitting things up would be inefficient

  43          $img->attr_transform_pre[] =
  44          $img->attr_transform_post[] =
  45              new HTMLPurifier_AttrTransform_ImgRequired();
  46      }
  47  }
  48  
  49  // vim: et sw=4 sts=4