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