diff options
author | Nicolas LÅ“uillet <nicolas.loeuillet@gmail.com> | 2014-02-21 15:43:14 +0100 |
---|---|---|
committer | Nicolas LÅ“uillet <nicolas.loeuillet@gmail.com> | 2014-02-21 15:43:14 +0100 |
commit | d4949327efa15b492cab1bef3fe074290a328a17 (patch) | |
tree | e89e0322bb1f1b06d663fd10fdded21bac867e5d /inc/3rdparty/htmlpurifier/HTMLPurifier/AttrDef/HTML/Color.php | |
parent | c9bd17a1007bb78e5de0775efca01df0fb515031 (diff) | |
download | wallabag-d4949327efa15b492cab1bef3fe074290a328a17.tar.gz wallabag-d4949327efa15b492cab1bef3fe074290a328a17.tar.zst wallabag-d4949327efa15b492cab1bef3fe074290a328a17.zip |
[add] HTML Purifier added to clean code
Diffstat (limited to 'inc/3rdparty/htmlpurifier/HTMLPurifier/AttrDef/HTML/Color.php')
-rw-r--r-- | inc/3rdparty/htmlpurifier/HTMLPurifier/AttrDef/HTML/Color.php | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/inc/3rdparty/htmlpurifier/HTMLPurifier/AttrDef/HTML/Color.php b/inc/3rdparty/htmlpurifier/HTMLPurifier/AttrDef/HTML/Color.php new file mode 100644 index 00000000..25c93fc6 --- /dev/null +++ b/inc/3rdparty/htmlpurifier/HTMLPurifier/AttrDef/HTML/Color.php | |||
@@ -0,0 +1,51 @@ | |||
1 | <?php | ||
2 | |||
3 | /** | ||
4 | * Validates a color according to the HTML spec. | ||
5 | */ | ||
6 | class HTMLPurifier_AttrDef_HTML_Color extends HTMLPurifier_AttrDef | ||
7 | { | ||
8 | |||
9 | /** | ||
10 | * @param string $string | ||
11 | * @param HTMLPurifier_Config $config | ||
12 | * @param HTMLPurifier_Context $context | ||
13 | * @return bool|string | ||
14 | */ | ||
15 | public function validate($string, $config, $context) | ||
16 | { | ||
17 | static $colors = null; | ||
18 | if ($colors === null) { | ||
19 | $colors = $config->get('Core.ColorKeywords'); | ||
20 | } | ||
21 | |||
22 | $string = trim($string); | ||
23 | |||
24 | if (empty($string)) { | ||
25 | return false; | ||
26 | } | ||
27 | $lower = strtolower($string); | ||
28 | if (isset($colors[$lower])) { | ||
29 | return $colors[$lower]; | ||
30 | } | ||
31 | if ($string[0] === '#') { | ||
32 | $hex = substr($string, 1); | ||
33 | } else { | ||
34 | $hex = $string; | ||
35 | } | ||
36 | |||
37 | $length = strlen($hex); | ||
38 | if ($length !== 3 && $length !== 6) { | ||
39 | return false; | ||
40 | } | ||
41 | if (!ctype_xdigit($hex)) { | ||
42 | return false; | ||
43 | } | ||
44 | if ($length === 3) { | ||
45 | $hex = $hex[0] . $hex[0] . $hex[1] . $hex[1] . $hex[2] . $hex[2]; | ||
46 | } | ||
47 | return "#$hex"; | ||
48 | } | ||
49 | } | ||
50 | |||
51 | // vim: et sw=4 sts=4 | ||