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 |
75: |