1: | <?php |
2: | |
3: | /** |
4: | * Allows multiple validators to attempt to validate attribute. |
5: | * |
6: | * Composite is just what it sounds like: a composite of many validators. |
7: | * This means that multiple HTMLPurifier_AttrDef objects will have a whack |
8: | * at the string. If one of them passes, that's what is returned. This is |
9: | * especially useful for CSS values, which often are a choice between |
10: | * an enumerated set of predefined values or a flexible data type. |
11: | */ |
12: | class HTMLPurifier_AttrDef_CSS_Composite extends HTMLPurifier_AttrDef |
13: | { |
14: | |
15: | /** |
16: | * List of objects that may process strings. |
17: | * @type HTMLPurifier_AttrDef[] |
18: | * @todo Make protected |
19: | */ |
20: | public $defs; |
21: | |
22: | /** |
23: | * @param HTMLPurifier_AttrDef[] $defs List of HTMLPurifier_AttrDef objects |
24: | */ |
25: | public function __construct($defs) |
26: | { |
27: | $this->defs = $defs; |
28: | } |
29: | |
30: | /** |
31: | * @param string $string |
32: | * @param HTMLPurifier_Config $config |
33: | * @param HTMLPurifier_Context $context |
34: | * @return bool|string |
35: | */ |
36: | public function validate($string, $config, $context) |
37: | { |
38: | foreach ($this->defs as $i => $def) { |
39: | $result = $this->defs[$i]->validate($string, $config, $context); |
40: | if ($result !== false) { |
41: | return $result; |
42: | } |
43: | } |
44: | return false; |
45: | } |
46: | } |
47: | |
48: | // vim: et sw=4 sts=4 |
49: |