| <?php | |
| 
 | |
| /** | |
|  * Allows Microformats2 classes but rejects any others | |
|  */ | |
| class HTMLPurifier_AttrDef_HTML_Microformats2 extends HTMLPurifier_AttrDef_HTML_Nmtokens | |
| { | |
|     /** | |
|      * @param string $string | |
|      * @param HTMLPurifier_Config $config | |
|      * @param HTMLPurifier_Context $context | |
|      * @return bool|string | |
|      */ | |
|     protected function split($string, $config, $context) | |
|     { | |
|         // really, this twiddle should be lazy loaded | |
|         $name = $config->getDefinition('HTML')->doctype->name; | |
|         if ($name == "XHTML 1.1" || $name == "XHTML 2.0") { | |
|             return parent::split($string, $config, $context); | |
|         } else { | |
|             return preg_split('/\s+/', $string); | |
|         } | |
|     } | |
| 
 | |
|     /** | |
|      * @param array $tokens | |
|      * @param HTMLPurifier_Config $config | |
|      * @param HTMLPurifier_Context $context | |
|      * @return array | |
|      */ | |
|     protected function filter($tokens, $config, $context) | |
|     { | |
|         $ret = array(); | |
|         foreach ($tokens as $token) { | |
|             if(preg_match('/^([hpue]|dt)-[a-z\-]+$/', $token)) { | |
|                 $ret[] = $token; | |
|             } | |
|         } | |
|         return $ret; | |
|     } | |
| }
 |