]> git.mxchange.org Git - friendica.git/blob - library/HTMLPurifier/AttrDef/CSS/Percentage.php
Merge branch 'master' of https://github.com/friendica/friendica
[friendica.git] / library / HTMLPurifier / AttrDef / CSS / Percentage.php
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 of HTMLPurifier_AttrDef_CSS_Number to defer number validation
11      */
12     protected $number_def;
13
14     /**
15      * @param Bool indicating whether to forbid negative values
16      */
17     public function __construct($non_negative = false) {
18         $this->number_def = new HTMLPurifier_AttrDef_CSS_Number($non_negative);
19     }
20
21     public function validate($string, $config, $context) {
22
23         $string = $this->parseCDATA($string);
24
25         if ($string === '') return false;
26         $length = strlen($string);
27         if ($length === 1) return false;
28         if ($string[$length - 1] !== '%') return false;
29
30         $number = substr($string, 0, $length - 1);
31         $number = $this->number_def->validate($number, $config, $context);
32
33         if ($number === false) return false;
34         return "$number%";
35
36     }
37
38 }
39
40 // vim: et sw=4 sts=4