]> git.immae.eu Git - github/wallabag/wallabag.git/blame - inc/3rdparty/htmlpurifier/HTMLPurifier/AttrDef/HTML/Length.php
remove autoload section in composer.json
[github/wallabag/wallabag.git] / inc / 3rdparty / htmlpurifier / HTMLPurifier / AttrDef / HTML / Length.php
CommitLineData
d4949327
NL
1<?php\r
2\r
3/**\r
4 * Validates the HTML type length (not to be confused with CSS's length).\r
5 *\r
6 * This accepts integer pixels or percentages as lengths for certain\r
7 * HTML attributes.\r
8 */\r
9\r
10class HTMLPurifier_AttrDef_HTML_Length extends HTMLPurifier_AttrDef_HTML_Pixels\r
11{\r
12\r
13 /**\r
14 * @param string $string\r
15 * @param HTMLPurifier_Config $config\r
16 * @param HTMLPurifier_Context $context\r
17 * @return bool|string\r
18 */\r
19 public function validate($string, $config, $context)\r
20 {\r
21 $string = trim($string);\r
22 if ($string === '') {\r
23 return false;\r
24 }\r
25\r
26 $parent_result = parent::validate($string, $config, $context);\r
27 if ($parent_result !== false) {\r
28 return $parent_result;\r
29 }\r
30\r
31 $length = strlen($string);\r
32 $last_char = $string[$length - 1];\r
33\r
34 if ($last_char !== '%') {\r
35 return false;\r
36 }\r
37\r
38 $points = substr($string, 0, $length - 1);\r
39\r
40 if (!is_numeric($points)) {\r
41 return false;\r
42 }\r
43\r
44 $points = (int)$points;\r
45\r
46 if ($points < 0) {\r
47 return '0%';\r
48 }\r
49 if ($points > 100) {\r
50 return '100%';\r
51 }\r
52 return ((string)$points) . '%';\r
53 }\r
54}\r
55\r
56// vim: et sw=4 sts=4\r