diff options
author | Nicolas Lœuillet <nicolas@loeuillet.org> | 2014-02-21 15:57:10 +0100 |
---|---|---|
committer | Nicolas Lœuillet <nicolas@loeuillet.org> | 2014-02-21 15:57:10 +0100 |
commit | 99679d06884120c57f43b44e55e03595f1f87bed (patch) | |
tree | a3f2a1aa1afdaeca1386d0c6e8a75344fd2241fb /inc/3rdparty/htmlpurifier/HTMLPurifier/AttrTransform/Input.php | |
parent | 655214ab30ee84884dc408488b85586f36263fcb (diff) | |
parent | d3b47e94705e17b3ba3529cbb1dc6efe69c5d2b7 (diff) | |
download | wallabag-1.5.2.tar.gz wallabag-1.5.2.tar.zst wallabag-1.5.2.zip |
Merge pull request #481 from wallabag/dev1.5.2
1.5.2
Diffstat (limited to 'inc/3rdparty/htmlpurifier/HTMLPurifier/AttrTransform/Input.php')
-rw-r--r-- | inc/3rdparty/htmlpurifier/HTMLPurifier/AttrTransform/Input.php | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/inc/3rdparty/htmlpurifier/HTMLPurifier/AttrTransform/Input.php b/inc/3rdparty/htmlpurifier/HTMLPurifier/AttrTransform/Input.php new file mode 100644 index 00000000..17a2ce4c --- /dev/null +++ b/inc/3rdparty/htmlpurifier/HTMLPurifier/AttrTransform/Input.php | |||
@@ -0,0 +1,56 @@ | |||
1 | <?php | ||
2 | |||
3 | /** | ||
4 | * Performs miscellaneous cross attribute validation and filtering for | ||
5 | * input elements. This is meant to be a post-transform. | ||
6 | */ | ||
7 | class HTMLPurifier_AttrTransform_Input extends HTMLPurifier_AttrTransform | ||
8 | { | ||
9 | /** | ||
10 | * @type HTMLPurifier_AttrDef_HTML_Pixels | ||
11 | */ | ||
12 | protected $pixels; | ||
13 | |||
14 | public function __construct() | ||
15 | { | ||
16 | $this->pixels = new HTMLPurifier_AttrDef_HTML_Pixels(); | ||
17 | } | ||
18 | |||
19 | /** | ||
20 | * @param array $attr | ||
21 | * @param HTMLPurifier_Config $config | ||
22 | * @param HTMLPurifier_Context $context | ||
23 | * @return array | ||
24 | */ | ||
25 | public function transform($attr, $config, $context) | ||
26 | { | ||
27 | if (!isset($attr['type'])) { | ||
28 | $t = 'text'; | ||
29 | } else { | ||
30 | $t = strtolower($attr['type']); | ||
31 | } | ||
32 | if (isset($attr['checked']) && $t !== 'radio' && $t !== 'checkbox') { | ||
33 | unset($attr['checked']); | ||
34 | } | ||
35 | if (isset($attr['maxlength']) && $t !== 'text' && $t !== 'password') { | ||
36 | unset($attr['maxlength']); | ||
37 | } | ||
38 | if (isset($attr['size']) && $t !== 'text' && $t !== 'password') { | ||
39 | $result = $this->pixels->validate($attr['size'], $config, $context); | ||
40 | if ($result === false) { | ||
41 | unset($attr['size']); | ||
42 | } else { | ||
43 | $attr['size'] = $result; | ||
44 | } | ||
45 | } | ||
46 | if (isset($attr['src']) && $t !== 'image') { | ||
47 | unset($attr['src']); | ||
48 | } | ||
49 | if (!isset($attr['value']) && ($t === 'radio' || $t === 'checkbox')) { | ||
50 | $attr['value'] = ''; | ||
51 | } | ||
52 | return $attr; | ||
53 | } | ||
54 | } | ||
55 | |||
56 | // vim: et sw=4 sts=4 | ||