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: