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   * Object that provides entity lookup table from entity name to character

   5   */
   6  class HTMLPurifier_EntityLookup
   7  {
   8      /**

   9       * Assoc array of entity name to character represented.

  10       * @type array

  11       */
  12      public $table;
  13  
  14      /**

  15       * Sets up the entity lookup table from the serialized file contents.

  16       * @param bool $file

  17       * @note The serialized contents are versioned, but were generated

  18       *       using the maintenance script generate_entity_file.php

  19       * @warning This is not in constructor to help enforce the Singleton

  20       */
  21      public function setup($file = false)
  22      {
  23          if (!$file) {
  24              $file = HTMLPURIFIER_PREFIX . '/HTMLPurifier/EntityLookup/entities.ser';
  25          }
  26          $this->table = unserialize(file_get_contents($file));
  27      }
  28  
  29      /**

  30       * Retrieves sole instance of the object.

  31       * @param bool|HTMLPurifier_EntityLookup $prototype Optional prototype of custom lookup table to overload with.

  32       * @return HTMLPurifier_EntityLookup

  33       */
  34      public static function instance($prototype = false)
  35      {
  36          // no references, since PHP doesn't copy unless modified

  37          static $instance = null;
  38          if ($prototype) {
  39              $instance = $prototype;
  40          } elseif (!$instance) {
  41              $instance = new HTMLPurifier_EntityLookup();
  42              $instance->setup();
  43          }
  44          return $instance;
  45      }
  46  }
  47  
  48  // vim: et sw=4 sts=4