1: <?php
2:
3: 4: 5:
6: class HTMLPurifier_AttrDef_CSS_ImportantDecorator extends HTMLPurifier_AttrDef
7: {
8: public $def, $allow;
9:
10: 11: 12: 13:
14: public function __construct($def, $allow = false) {
15: $this->def = $def;
16: $this->allow = $allow;
17: }
18: 19: 20:
21: public function validate($string, $config, $context) {
22:
23: $string = trim($string);
24: $is_important = false;
25:
26: if (strlen($string) >= 9 && substr($string, -9) === 'important') {
27: $temp = rtrim(substr($string, 0, -9));
28:
29: if (strlen($temp) >= 1 && substr($temp, -1) === '!') {
30: $string = rtrim(substr($temp, 0, -1));
31: $is_important = true;
32: }
33: }
34: $string = $this->def->validate($string, $config, $context);
35: if ($this->allow && $is_important) $string .= ' !important';
36: return $string;
37: }
38: }
39:
40:
41: