Index: t3lib/class.t3lib_parsehtml.php
===================================================================
--- t3lib/class.t3lib_parsehtml.php (révision 7931)
+++ t3lib/class.t3lib_parsehtml.php (copie de travail)
@@ -810,8 +810,27 @@
$tagAttrib[0][$attr]=t3lib_div::intInRange($tagAttrib[0][$attr],intval($params['range'][0]));
}
}
- if (is_array($params['list'])) {
- if (!in_array($this->caseShift($tagAttrib[0][$attr],$params['casesensitiveComp']),$this->caseShift($params['list'],$params['casesensitiveComp'],$tagName))) $tagAttrib[0][$attr]=$params['list'][0];
+ if (is_array($params['list'])) {
+ // For the class attribute, remove from the attribute value any class not in the list
+ // Classes are case sensitive
+ if ($attr == 'class') {
+ $newClasses = array();
+ $classes = t3lib_div::trimExplode(' ', $tagAttrib[0][$attr], TRUE);
+ foreach ($classes as $class) {
+ if (in_array($class, $params['list'])) {
+ $newClasses[] = $class;
+ }
+ }
+ if (count($newClasses)) {
+ $tagAttrib[0][$attr] = implode(' ', $newClasses);
+ } else {
+ $tagAttrib[0][$attr] = '';
+ }
+ } else {
+ if (!in_array($this->caseShift($tagAttrib[0][$attr],$params['casesensitiveComp']),$this->caseShift($params['list'],$params['casesensitiveComp'],$tagName))) {
+ $tagAttrib[0][$attr]=$params['list'][0];
+ }
+ }
}
if (($params['removeIfFalse'] && $params['removeIfFalse']!='blank' && !$tagAttrib[0][$attr]) || ($params['removeIfFalse']=='blank' && !strcmp($tagAttrib[0][$attr],''))) {
unset($tagAttrib[0][$attr]);