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 1 : 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 2 : foreach ($this->defs as $i => $def) {
30 2 : $result = $this->defs[$i]->validate($string, $config, $context);
31 2 : if ($result !== false) return $result;
32 0 : }
33 0 : return false;
34 : }
35 :
36 : }
37 :
|