1: | <?php
|
2: |
|
3: | |
4: | |
5: |
|
6: | class HTMLPurifier_AttrDef_CSS_Percentage extends HTMLPurifier_AttrDef
|
7: | {
|
8: |
|
9: | |
10: | |
11: | |
12: |
|
13: | protected $number_def;
|
14: |
|
15: | |
16: | |
17: |
|
18: | public function __construct($non_negative = false)
|
19: | {
|
20: | $this->number_def = new HTMLPurifier_AttrDef_CSS_Number($non_negative);
|
21: | }
|
22: |
|
23: | |
24: | |
25: | |
26: | |
27: | |
28: |
|
29: | public function validate($string, $config, $context)
|
30: | {
|
31: | $string = $this->parseCDATA($string);
|
32: |
|
33: | if ($string === '') {
|
34: | return false;
|
35: | }
|
36: | $length = strlen($string);
|
37: | if ($length === 1) {
|
38: | return false;
|
39: | }
|
40: | if ($string[$length - 1] !== '%') {
|
41: | return false;
|
42: | }
|
43: |
|
44: | $number = substr($string, 0, $length - 1);
|
45: | $number = $this->number_def->validate($number, $config, $context);
|
46: |
|
47: | if ($number === false) {
|
48: | return false;
|
49: | }
|
50: | return "$number%";
|
51: | }
|
52: | }
|
53: |
|
54: |
|
55: | |