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 Percentage as defined by the CSS spec.
5
 */
6
class HTMLPurifier_AttrDef_CSS_Percentage extends HTMLPurifier_AttrDef
7
{
8
 
9
    /**
10
     * Instance to defer number validation to.
11
     * @type HTMLPurifier_AttrDef_CSS_Number
12
     */
13
    protected $number_def;
14
 
15
    /**
16
     * @param bool $non_negative Whether to forbid negative values
17
     */
18
    public function __construct($non_negative = false)
19
    {
20
        $this->number_def = new HTMLPurifier_AttrDef_CSS_Number($non_negative);
21
    }
22
 
23
    /**
24
     * @param string $string
25
     * @param HTMLPurifier_Config $config
26
     * @param HTMLPurifier_Context $context
27
     * @return bool|string
28
     */
29
    public function validate($string, $config, $context)
30
    {
31
        $string = $this->parseCDATA($string);
32
 
33
        if ($string === '') {
34
            return false;
35
        }
36
        $length = strlen($string);
37
        if ($length === 1) {
38
            return false;
39
        }
40
        if ($string[$length - 1] !== '%') {
41
            return false;
42
        }
43
 
44
        $number = substr($string, 0, $length - 1);
45
        $number = $this->number_def->validate($number, $config, $context);
46
 
47
        if ($number === false) {
48
            return false;
49
        }
50
        return "$number%";
51
    }
52
}
53
 
54
// vim: et sw=4 sts=4