]> git.immae.eu Git - github/wallabag/wallabag.git/blame - inc/3rdparty/htmlpurifier/HTMLPurifier/AttrDef/HTML/Class.php
remove autoload section in composer.json
[github/wallabag/wallabag.git] / inc / 3rdparty / htmlpurifier / HTMLPurifier / AttrDef / HTML / Class.php
CommitLineData
d4949327
NL
1<?php\r
2\r
3/**\r
4 * Implements special behavior for class attribute (normally NMTOKENS)\r
5 */\r
6class HTMLPurifier_AttrDef_HTML_Class extends HTMLPurifier_AttrDef_HTML_Nmtokens\r
7{\r
8 /**\r
9 * @param string $string\r
10 * @param HTMLPurifier_Config $config\r
11 * @param HTMLPurifier_Context $context\r
12 * @return bool|string\r
13 */\r
14 protected function split($string, $config, $context)\r
15 {\r
16 // really, this twiddle should be lazy loaded\r
17 $name = $config->getDefinition('HTML')->doctype->name;\r
18 if ($name == "XHTML 1.1" || $name == "XHTML 2.0") {\r
19 return parent::split($string, $config, $context);\r
20 } else {\r
21 return preg_split('/\s+/', $string);\r
22 }\r
23 }\r
24\r
25 /**\r
26 * @param array $tokens\r
27 * @param HTMLPurifier_Config $config\r
28 * @param HTMLPurifier_Context $context\r
29 * @return array\r
30 */\r
31 protected function filter($tokens, $config, $context)\r
32 {\r
33 $allowed = $config->get('Attr.AllowedClasses');\r
34 $forbidden = $config->get('Attr.ForbiddenClasses');\r
35 $ret = array();\r
36 foreach ($tokens as $token) {\r
37 if (($allowed === null || isset($allowed[$token])) &&\r
38 !isset($forbidden[$token]) &&\r
39 // We need this O(n) check because of PHP's array\r
40 // implementation that casts -0 to 0.\r
41 !in_array($token, $ret, true)\r
42 ) {\r
43 $ret[] = $token;\r
44 }\r
45 }\r
46 return $ret;\r
47 }\r
48}\r