Hallo Community,
ich möchte per getContentElement HOOK die CSS Klassen eines Inhaltselement beeinflussen. Also das man per Checkbox die CSS Klassen erweitern kann.
Meine config.php sieht so aus:
PHP-Code:
$GLOBALS['TL_HOOKS']['getContentElement'][] = array('npgridtools', 'gridSettings');
Die entsprechende PHP Datei so:
PHP-Code:
class npgridtools extends Controller {
private function tplObj($objRow) {
$strClass = \ContentElement::findClass($objRow->type);
return new $strClass($objRow);
}
public function gridSettings($objRow, $strBuffer) {
if(TL_MODE == 'BE') return $strBuffer;
$objElement = $this->tplObj($objRow);
$classes = $objElement->cssID;
if($objElement->hlSettings) $classes[1] .= ' '.$objElement->hlSettings;
if($objElement->toClear) $classes[1] .= ' clear';
if($objElement->noMaxWidth) $classes[1] .= ' noMax';
if($objElement->hrColor) $classes[1] .= ' '.$objElement->hrColor;
if($objElement->viewMode) $classes[1] .= ' '.$objElement->viewMode;
$classes[1] = trim($classes[1]);
$objElement->cssID = $classes;
$strBuffer = $objElement->generate();
return $strBuffer;
}
}
Das klappt soweit auch alles, allerdings funktioniert dann die Newsletterregistrierung nicht mehr. Wenn ich auf den Bestätigungslink in der E-Mail klicke, erhalte ich den Fehler "Der Aktivierungslink ist ungültig oder veraltet."
Wenn ich meiner Erweiterung das "$strBuffer = $objElement->generate(); " entferne, funktioniert alles.
Irgendwie wird durch die generate() Funktion der Token gelöscht oder so ähnlich.
Hat jemand einen Tipp?
grüße
Lesezeichen