1: | <?php |
2: | |
3: | /** |
4: | * Defines allowed child nodes and validates nodes against it. |
5: | */ |
6: | abstract class HTMLPurifier_ChildDef |
7: | { |
8: | /** |
9: | * Type of child definition, usually right-most part of class name lowercase. |
10: | * Used occasionally in terms of context. |
11: | * @type string |
12: | */ |
13: | public $type; |
14: | |
15: | /** |
16: | * Indicates whether or not an empty array of children is okay. |
17: | * |
18: | * This is necessary for redundant checking when changes affecting |
19: | * a child node may cause a parent node to now be disallowed. |
20: | * @type bool |
21: | */ |
22: | public $allow_empty; |
23: | |
24: | /** |
25: | * Lookup array of all elements that this definition could possibly allow. |
26: | * @type array |
27: | */ |
28: | public $elements = array(); |
29: | |
30: | /** |
31: | * Get lookup of tag names that should not close this element automatically. |
32: | * All other elements will do so. |
33: | * @param HTMLPurifier_Config $config HTMLPurifier_Config object |
34: | * @return array |
35: | */ |
36: | public function getAllowedElements($config) |
37: | { |
38: | return $this->elements; |
39: | } |
40: | |
41: | /** |
42: | * Validates nodes according to definition and returns modification. |
43: | * |
44: | * @param HTMLPurifier_Node[] $children Array of HTMLPurifier_Node |
45: | * @param HTMLPurifier_Config $config HTMLPurifier_Config object |
46: | * @param HTMLPurifier_Context $context HTMLPurifier_Context object |
47: | * @return bool|array true to leave nodes as is, false to remove parent node, array of replacement children |
48: | */ |
49: | abstract public function validateChildren($children, $config, $context); |
50: | } |
51: | |
52: | // vim: et sw=4 sts=4 |
53: |