1: <?php
2:
3: 4: 5:
6: class HTMLPurifier_AttrDef_CSS_Length extends HTMLPurifier_AttrDef
7: {
8:
9: protected $min, $max;
10:
11: 12: 13: 14:
15: public function __construct($min = null, $max = null) {
16: $this->min = $min !== null ? HTMLPurifier_Length::make($min) : null;
17: $this->max = $max !== null ? HTMLPurifier_Length::make($max) : null;
18: }
19:
20: public function validate($string, $config, $context) {
21: $string = $this->parseCDATA($string);
22:
23:
24: if ($string === '') return false;
25: if ($string === '0') return '0';
26: if (strlen($string) === 1) return false;
27:
28: $length = HTMLPurifier_Length::make($string);
29: if (!$length->isValid()) return false;
30:
31: if ($this->min) {
32: $c = $length->compareTo($this->min);
33: if ($c === false) return false;
34: if ($c < 0) return false;
35: }
36: if ($this->max) {
37: $c = $length->compareTo($this->max);
38: if ($c === false) return false;
39: if ($c > 0) return false;
40: }
41:
42: return $length->toString();
43: }
44:
45: }
46:
47:
48: