Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 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