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 HTMLPurifier_AttrDef objects that may process strings
17: * @todo Make protected
18: */
19: public $defs;
20:
21: /**
22: * @param $defs List of HTMLPurifier_AttrDef objects
23: */
24: public function __construct($defs) {
25: $this->defs = $defs;
26: }
27:
28: public function validate($string, $config, $context) {
29: foreach ($this->defs as $i => $def) {
30: $result = $this->defs[$i]->validate($string, $config, $context);
31: if ($result !== false) return $result;
32: }
33: return false;
34: }
35:
36: }
37:
38: // vim: et sw=4 sts=4
39: