diff options
Diffstat (limited to 'library/HTMLPurifier/AttrDef/CSS/ListStyle.php')
-rw-r--r-- | library/HTMLPurifier/AttrDef/CSS/ListStyle.php | 78 |
1 files changed, 56 insertions, 22 deletions
diff --git a/library/HTMLPurifier/AttrDef/CSS/ListStyle.php b/library/HTMLPurifier/AttrDef/CSS/ListStyle.php index 4406868c0..e74d42654 100644 --- a/library/HTMLPurifier/AttrDef/CSS/ListStyle.php +++ b/library/HTMLPurifier/AttrDef/CSS/ListStyle.php @@ -8,46 +8,72 @@ class HTMLPurifier_AttrDef_CSS_ListStyle extends HTMLPurifier_AttrDef { /** - * Local copy of component validators. + * Local copy of validators. + * @type HTMLPurifier_AttrDef[] * @note See HTMLPurifier_AttrDef_CSS_Font::$info for a similar impl. */ protected $info; - public function __construct($config) { + /** + * @param HTMLPurifier_Config $config + */ + public function __construct($config) + { $def = $config->getCSSDefinition(); - $this->info['list-style-type'] = $def->info['list-style-type']; + $this->info['list-style-type'] = $def->info['list-style-type']; $this->info['list-style-position'] = $def->info['list-style-position']; $this->info['list-style-image'] = $def->info['list-style-image']; } - public function validate($string, $config, $context) { - + /** + * @param string $string + * @param HTMLPurifier_Config $config + * @param HTMLPurifier_Context $context + * @return bool|string + */ + public function validate($string, $config, $context) + { // regular pre-processing $string = $this->parseCDATA($string); - if ($string === '') return false; + if ($string === '') { + return false; + } // assumes URI doesn't have spaces in it $bits = explode(' ', strtolower($string)); // bits to process $caught = array(); - $caught['type'] = false; + $caught['type'] = false; $caught['position'] = false; - $caught['image'] = false; + $caught['image'] = false; $i = 0; // number of catches $none = false; foreach ($bits as $bit) { - if ($i >= 3) return; // optimization bit - if ($bit === '') continue; + if ($i >= 3) { + return; + } // optimization bit + if ($bit === '') { + continue; + } foreach ($caught as $key => $status) { - if ($status !== false) continue; + if ($status !== false) { + continue; + } $r = $this->info['list-style-' . $key]->validate($bit, $config, $context); - if ($r === false) continue; + if ($r === false) { + continue; + } if ($r === 'none') { - if ($none) continue; - else $none = true; - if ($key == 'image') continue; + if ($none) { + continue; + } else { + $none = true; + } + if ($key == 'image') { + continue; + } } $caught[$key] = $r; $i++; @@ -55,24 +81,32 @@ class HTMLPurifier_AttrDef_CSS_ListStyle extends HTMLPurifier_AttrDef } } - if (!$i) return false; + if (!$i) { + return false; + } $ret = array(); // construct type - if ($caught['type']) $ret[] = $caught['type']; + if ($caught['type']) { + $ret[] = $caught['type']; + } // construct image - if ($caught['image']) $ret[] = $caught['image']; + if ($caught['image']) { + $ret[] = $caught['image']; + } // construct position - if ($caught['position']) $ret[] = $caught['position']; + if ($caught['position']) { + $ret[] = $caught['position']; + } - if (empty($ret)) return false; + if (empty($ret)) { + return false; + } return implode(' ', $ret); - } - } // vim: et sw=4 sts=4 |