Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 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