]> git.immae.eu Git - github/wallabag/wallabag.git/blame - inc/3rdparty/htmlpurifier/HTMLPurifier/AttrDef/CSS/Length.php
remove autoload section in composer.json
[github/wallabag/wallabag.git] / inc / 3rdparty / htmlpurifier / HTMLPurifier / AttrDef / CSS / Length.php
CommitLineData
d4949327
NL
1<?php\r
2\r
3/**\r
4 * Represents a Length as defined by CSS.\r
5 */\r
6class HTMLPurifier_AttrDef_CSS_Length extends HTMLPurifier_AttrDef\r
7{\r
8\r
9 /**\r
10 * @type HTMLPurifier_Length|string\r
11 */\r
12 protected $min;\r
13\r
14 /**\r
15 * @type HTMLPurifier_Length|string\r
16 */\r
17 protected $max;\r
18\r
19 /**\r
20 * @param HTMLPurifier_Length|string $min Minimum length, or null for no bound. String is also acceptable.\r
21 * @param HTMLPurifier_Length|string $max Maximum length, or null for no bound. String is also acceptable.\r
22 */\r
23 public function __construct($min = null, $max = null)\r
24 {\r
25 $this->min = $min !== null ? HTMLPurifier_Length::make($min) : null;\r
26 $this->max = $max !== null ? HTMLPurifier_Length::make($max) : null;\r
27 }\r
28\r
29 /**\r
30 * @param string $string\r
31 * @param HTMLPurifier_Config $config\r
32 * @param HTMLPurifier_Context $context\r
33 * @return bool|string\r
34 */\r
35 public function validate($string, $config, $context)\r
36 {\r
37 $string = $this->parseCDATA($string);\r
38\r
39 // Optimizations\r
40 if ($string === '') {\r
41 return false;\r
42 }\r
43 if ($string === '0') {\r
44 return '0';\r
45 }\r
46 if (strlen($string) === 1) {\r
47 return false;\r
48 }\r
49\r
50 $length = HTMLPurifier_Length::make($string);\r
51 if (!$length->isValid()) {\r
52 return false;\r
53 }\r
54\r
55 if ($this->min) {\r
56 $c = $length->compareTo($this->min);\r
57 if ($c === false) {\r
58 return false;\r
59 }\r
60 if ($c < 0) {\r
61 return false;\r
62 }\r
63 }\r
64 if ($this->max) {\r
65 $c = $length->compareTo($this->max);\r
66 if ($c === false) {\r
67 return false;\r
68 }\r
69 if ($c > 0) {\r
70 return false;\r
71 }\r
72 }\r
73 return $length->toString();\r
74 }\r
75}\r
76\r
77// vim: et sw=4 sts=4\r