1: | <?php |
2: | |
3: | /** |
4: | * Definition that allows a set of elements, and allows no children. |
5: | * @note This is a hack to reuse code from HTMLPurifier_ChildDef_Required, |
6: | * really, one shouldn't inherit from the other. Only altered behavior |
7: | * is to overload a returned false with an array. Thus, it will never |
8: | * return false. |
9: | */ |
10: | class HTMLPurifier_ChildDef_Optional extends HTMLPurifier_ChildDef_Required |
11: | { |
12: | /** |
13: | * @type bool |
14: | */ |
15: | public $allow_empty = true; |
16: | |
17: | /** |
18: | * @type string |
19: | */ |
20: | public $type = 'optional'; |
21: | |
22: | /** |
23: | * @param array $children |
24: | * @param HTMLPurifier_Config $config |
25: | * @param HTMLPurifier_Context $context |
26: | * @return array |
27: | */ |
28: | public function validateChildren($children, $config, $context) |
29: | { |
30: | $result = parent::validateChildren($children, $config, $context); |
31: | // we assume that $children is not modified |
32: | if ($result === false) { |
33: | if (empty($children)) { |
34: | return true; |
35: | } elseif ($this->whitespace) { |
36: | return $children; |
37: | } else { |
38: | return array(); |
39: | } |
40: | } |
41: | return $result; |
42: | } |
43: | } |
44: | |
45: | // vim: et sw=4 sts=4 |
46: |