aboutsummaryrefslogtreecommitdiffstats
path: root/library/HTMLPurifier/AttrDef/CSS/Color.php
diff options
context:
space:
mode:
authorzotlabs <mike@macgirvin.com>2017-03-27 14:11:25 -0700
committerzotlabs <mike@macgirvin.com>2017-03-27 14:11:25 -0700
commit8292553a2087a412e0b10f5593d461d371169adb (patch)
tree2648714d80a19154ec19defa92aaa3229cae23c6 /library/HTMLPurifier/AttrDef/CSS/Color.php
parent5cbf60320355845e2abdec0422055d3fe321e84e (diff)
parent6375401e0af6c52d151dd2b944aa6a054b8ddc05 (diff)
downloadvolse-hubzilla-8292553a2087a412e0b10f5593d461d371169adb.tar.gz
volse-hubzilla-8292553a2087a412e0b10f5593d461d371169adb.tar.bz2
volse-hubzilla-8292553a2087a412e0b10f5593d461d371169adb.zip
Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge
Diffstat (limited to 'library/HTMLPurifier/AttrDef/CSS/Color.php')
-rw-r--r--library/HTMLPurifier/AttrDef/CSS/Color.php105
1 files changed, 0 insertions, 105 deletions
diff --git a/library/HTMLPurifier/AttrDef/CSS/Color.php b/library/HTMLPurifier/AttrDef/CSS/Color.php
deleted file mode 100644
index 16d2a6b98..000000000
--- a/library/HTMLPurifier/AttrDef/CSS/Color.php
+++ /dev/null
@@ -1,105 +0,0 @@
-<?php
-
-/**
- * Validates Color as defined by CSS.
- */
-class HTMLPurifier_AttrDef_CSS_Color extends HTMLPurifier_AttrDef
-{
-
- /**
- * @param string $color
- * @param HTMLPurifier_Config $config
- * @param HTMLPurifier_Context $context
- * @return bool|string
- */
- public function validate($color, $config, $context)
- {
- static $colors = null;
- if ($colors === null) {
- $colors = $config->get('Core.ColorKeywords');
- }
-
- $color = trim($color);
- if ($color === '') {
- return false;
- }
-
- $lower = strtolower($color);
- if (isset($colors[$lower])) {
- return $colors[$lower];
- }
-
- if (strpos($color, 'rgb(') !== false) {
- // rgb literal handling
- $length = strlen($color);
- if (strpos($color, ')') !== $length - 1) {
- return false;
- }
- $triad = substr($color, 4, $length - 4 - 1);
- $parts = explode(',', $triad);
- if (count($parts) !== 3) {
- return false;
- }
- $type = false; // to ensure that they're all the same type
- $new_parts = array();
- foreach ($parts as $part) {
- $part = trim($part);
- if ($part === '') {
- return false;
- }
- $length = strlen($part);
- if ($part[$length - 1] === '%') {
- // handle percents
- if (!$type) {
- $type = 'percentage';
- } elseif ($type !== 'percentage') {
- return false;
- }
- $num = (float)substr($part, 0, $length - 1);
- if ($num < 0) {
- $num = 0;
- }
- if ($num > 100) {
- $num = 100;
- }
- $new_parts[] = "$num%";
- } else {
- // handle integers
- if (!$type) {
- $type = 'integer';
- } elseif ($type !== 'integer') {
- return false;
- }
- $num = (int)$part;
- if ($num < 0) {
- $num = 0;
- }
- if ($num > 255) {
- $num = 255;
- }
- $new_parts[] = (string)$num;
- }
- }
- $new_triad = implode(',', $new_parts);
- $color = "rgb($new_triad)";
- } else {
- // hexadecimal handling
- if ($color[0] === '#') {
- $hex = substr($color, 1);
- } else {
- $hex = $color;
- $color = '#' . $color;
- }
- $length = strlen($hex);
- if ($length !== 3 && $length !== 6) {
- return false;
- }
- if (!ctype_xdigit($hex)) {
- return false;
- }
- }
- return $color;
- }
-}
-
-// vim: et sw=4 sts=4