diff options
author | Tim Almdal <tnalmdal@shaw.ca> | 2009-07-03 12:56:29 -0700 |
---|---|---|
committer | Tim Almdal <tnalmdal@shaw.ca> | 2009-07-03 12:56:29 -0700 |
commit | b6e5bf6eaade677187f99182e7face7c4b711bec (patch) | |
tree | 41c31bb904d42f358bc09fc78aa063c3e875ab04 /modules/gallery/libraries/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Composite.php | |
parent | cf279fc315841836f92c8a81935db00bb3a919ff (diff) |
Fix for ticket #400: Add HTMLPurifier to gallery3 and change p::clean() to call HTMLPurifier->purify()
Diffstat (limited to 'modules/gallery/libraries/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Composite.php')
-rw-r--r-- | modules/gallery/libraries/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Composite.php | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/modules/gallery/libraries/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Composite.php b/modules/gallery/libraries/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Composite.php new file mode 100644 index 00000000..de1289cb --- /dev/null +++ b/modules/gallery/libraries/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Composite.php @@ -0,0 +1,38 @@ +<?php + +/** + * Allows multiple validators to attempt to validate attribute. + * + * Composite is just what it sounds like: a composite of many validators. + * This means that multiple HTMLPurifier_AttrDef objects will have a whack + * at the string. If one of them passes, that's what is returned. This is + * especially useful for CSS values, which often are a choice between + * an enumerated set of predefined values or a flexible data type. + */ +class HTMLPurifier_AttrDef_CSS_Composite extends HTMLPurifier_AttrDef +{ + + /** + * List of HTMLPurifier_AttrDef objects that may process strings + * @todo Make protected + */ + public $defs; + + /** + * @param $defs List of HTMLPurifier_AttrDef objects + */ + public function __construct($defs) { + $this->defs = $defs; + } + + public function validate($string, $config, $context) { + foreach ($this->defs as $i => $def) { + $result = $this->defs[$i]->validate($string, $config, $context); + if ($result !== false) return $result; + } + return false; + } + +} + +// vim: et sw=4 sts=4 |