Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
<?php
2
 
3
/**
4
 * Records errors for particular segments of an HTML document such as tokens,
5
 * attributes or CSS properties. They can contain error structs (which apply
6
 * to components of what they represent), but their main purpose is to hold
7
 * errors applying to whatever struct is being used.
8
 */
9
class HTMLPurifier_ErrorStruct
10
{
11
 
12
    /**
13
     * Possible values for $children first-key. Note that top-level structures
14
     * are automatically token-level.
15
     */
16
    const TOKEN     = 0;
17
    const ATTR      = 1;
18
    const CSSPROP   = 2;
19
 
20
    /**
21
     * Type of this struct.
22
     * @type string
23
     */
24
    public $type;
25
 
26
    /**
27
     * Value of the struct we are recording errors for. There are various
28
     * values for this:
29
     *  - TOKEN: Instance of HTMLPurifier_Token
30
     *  - ATTR: array('attr-name', 'value')
31
     *  - CSSPROP: array('prop-name', 'value')
32
     * @type mixed
33
     */
34
    public $value;
35
 
36
    /**
37
     * Errors registered for this structure.
38
     * @type array
39
     */
40
    public $errors = array();
41
 
42
    /**
43
     * Child ErrorStructs that are from this structure. For example, a TOKEN
44
     * ErrorStruct would contain ATTR ErrorStructs. This is a multi-dimensional
45
     * array in structure: [TYPE]['identifier']
46
     * @type array
47
     */
48
    public $children = array();
49
 
50
    /**
51
     * @param string $type
52
     * @param string $id
53
     * @return mixed
54
     */
55
    public function getChild($type, $id)
56
    {
57
        if (!isset($this->children[$type][$id])) {
58
            $this->children[$type][$id] = new HTMLPurifier_ErrorStruct();
59
            $this->children[$type][$id]->type = $type;
60
        }
61
        return $this->children[$type][$id];
62
    }
63
 
64
    /**
65
     * @param int $severity
66
     * @param string $message
67
     */
68
    public function addError($severity, $message)
69
    {
70
        $this->errors[] = array($severity, $message);
71
    }
72
}
73
 
74
// vim: et sw=4 sts=4