diff options
author | Andrew Dolgov <[email protected]> | 2012-06-05 21:52:21 +0400 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2012-06-05 21:52:21 +0400 |
commit | 010efc9b814b433bc60353caec185d905688a32b (patch) | |
tree | b2b4f62cbc2d10cf75386e992434be1f4013dc13 /lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Color.php | |
parent | 705b97b7fca9ea70820af5fcd926f88903eaa430 (diff) |
Revert "remove htmlpurifier"
This reverts commit c21a462d52bd32737c32c29b060da03b38f1c2e6.
Diffstat (limited to 'lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Color.php')
-rw-r--r-- | lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Color.php | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Color.php b/lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Color.php new file mode 100644 index 000000000..00d865723 --- /dev/null +++ b/lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Color.php @@ -0,0 +1,32 @@ +<?php + +/** + * Validates a color according to the HTML spec. + */ +class HTMLPurifier_AttrDef_HTML_Color extends HTMLPurifier_AttrDef +{ + + public function validate($string, $config, $context) { + + static $colors = null; + if ($colors === null) $colors = $config->get('Core.ColorKeywords'); + + $string = trim($string); + + if (empty($string)) return false; + if (isset($colors[strtolower($string)])) return $colors[$string]; + if ($string[0] === '#') $hex = substr($string, 1); + else $hex = $string; + + $length = strlen($hex); + if ($length !== 3 && $length !== 6) return false; + if (!ctype_xdigit($hex)) return false; + if ($length === 3) $hex = $hex[0].$hex[0].$hex[1].$hex[1].$hex[2].$hex[2]; + + return "#$hex"; + + } + +} + +// vim: et sw=4 sts=4 |