Als Info an alle, die auch ein ähnliches Problem mit TinyMCE haben sollten.
Das Problem lag an der Verwendung der Artikel-Versionierung in Verbindung mit der Ausgabe des startenden Body-Tags als ein PHP String-Literal.
Ist die Artikel-Versionierung aktiv, wird im Backend der dazugehörige HTML Code dem startenden Body-Tag per regulärem Ausdruck hinzugefügt. Das passiert direkt im generierten PHP-Code, also bevor der Code interpretiert und als HTML ausgegeben wird.
Wenn der startende Body-Tag in einem Layout oder in einer Modulausgabe als PHP-String ausgegeben wird,
wird diesem Code der HTML-Text für die Artikel-Versionierung angehängt, also
Code: Alles auswählen
<?php
$bodyId = "";
echo "<body id=\"$bodyId\"> <div class="editcontentList">...";
?>
Da der reguläre Ausdruck nicht weiß, dass es sich um einen mit PHP echo auszugebenden String für den startenden Body-Tag handelt, werden im danach hinzugefügten String (HTML-Code für die Artikel-Versionierung) natürlich nicht die String-Begrenzer (") entsprechend maskiert.
Am Ende hat man einen fehlerhaften PHP-Code der so nicht interpretiert werden kann.
Um das Problem zu umgehen, wird empfohlen, die Ausgabe des startenden Body-Tags im HTML-Kontext wie folgt auszugeben:
Code: Alles auswählen
<?php
$bodyId = "";
?>
<body id="<?php echo $bodyId ?>">
Somit wird der Code für die Artikel-Versionierung korrekt hinzugefügt, ohne dass es einen PHP-Fehler verursacht.
Das ist eigentlich ein Bug, andererseits ist es auch sehr schwierig, mittels regulärer Ausdrücke irgendwelche Ersetzungen oder Anpassungen im Code zu machen, vor allem, wenn es sich um gemischten Code (HTML, JS, CSS, PHP) handelt.
Grüße
xmurrix