| 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: |