]> git.mxchange.org Git - friendica.git/blob - library/HTMLPurifier/AttrDef/HTML/Class.php
Update ForumManager.php - small correction
[friendica.git] / library / HTMLPurifier / AttrDef / HTML / Class.php
1 <?php
2
3 /**
4  * Implements special behavior for class attribute (normally NMTOKENS)
5  */
6 class HTMLPurifier_AttrDef_HTML_Class extends HTMLPurifier_AttrDef_HTML_Nmtokens
7 {
8     protected function split($string, $config, $context) {
9         // really, this twiddle should be lazy loaded
10         $name = $config->getDefinition('HTML')->doctype->name;
11         if ($name == "XHTML 1.1" || $name == "XHTML 2.0") {
12             return parent::split($string, $config, $context);
13         } else {
14             return preg_split('/\s+/', $string);
15         }
16     }
17     protected function filter($tokens, $config, $context) {
18         $allowed = $config->get('Attr.AllowedClasses');
19         $forbidden = $config->get('Attr.ForbiddenClasses');
20         $ret = array();
21         foreach ($tokens as $token) {
22             if (
23                 ($allowed === null || isset($allowed[$token])) &&
24                 !isset($forbidden[$token]) &&
25                 // We need this O(n) check because of PHP's array
26                 // implementation that casts -0 to 0.
27                 !in_array($token, $ret, true)
28             ) {
29                 $ret[] = $token;
30             }
31         }
32         return $ret;
33     }
34 }