Zum Inhalt springen

tinyMCE, tt_news und entities

Erstellt am 26. Februar 2009 · 2 Antworten · letzte Antwort am 27. Februar 2009

Tags: tt_news, Frage

tulkas ·

Hallo miteinander,

wir sind vor kurzem auf den TinyMCE umgestiegen und auf einen recht skurrilen Fehler mit Entities gestossen.
TinyMCE scheint auf eine obskure Weise Frontendausgaben zu beeinflussen auf die der RTE eigentlich gar keinen Einfluss nehmen können dürfte. Wir haben auf unserer Seite eine Newsleiste eingebunden, die komplett über Typoscript gesteuert wird.
Um den Zeilenumbruch zwischen Teaser-Text der News und dem mehr-Link zu vermeiden (###MORE### fügt einen Extra-<div> für den mehr-Link ein) binden wir den mehr-Link folgendermaßen ein:

displayLatest.subheader_stdWrap {
  	append = TEXT
      	append.data = register:newsMoreLink
      	append.wrap = <span class="news-list-morelink"> |</span>
}

Das funktionierte bisher immer ganz gut, das Frontend gab artig folgendes aus (ohne Leerzeichen in den amp-Entities):

<a href="index.php?id=484& amp;tx_ttnews%5Btt_news%5D=68& amp;tx_ttnews%5BbackPid%5D=592& amp;cHash=XXXXXX" title="XXXX">[mehr]</a>

Seitdem der tinyMCE installiert ist, werden die Entities für den more-Link anscheinend noch einmal geparsed und das ganze sieht so aus, mit dem Erfolg, dass die Links zur Singleanzeige ins Nirvana gehen (oder zumindest eine ungültige ID ergeben):

<a href="index.php?id=484& amp;amp;tx_ttnews%5Btt_news%5D=68& amp;amp;tx_ttnews%5BbackPid%5D=592& amp;amp;cHash=XXXXXX" title="XXXX">[mehr]</a>

Alle anderen Links mit Entities funktionieren aber trotzdem noch einwandfrei, der Fehler scheint nur bei Zugriff auf register:newsMoreLink zuzugreifen.

Vermutung: TinyMCE scheint irgendwie sämtlichen Frontend-Content beim Rendern abzugreifen und Entities zu parsen. Unglücklicherweise übersieht tinyMCE, dass der Content in register:newsMoreLink bereits geparsed wurde und parsed das & in & amp; gleich nochmal (weil beim ersten Mal so schön war).
:o
#angry#

Frage 1:
Auf welcher/n Ebene(n) greift der tinyMCE-HTML-Parser ein und wie kann man ihm das abgewöhnen?
Frage 2:
Wo genau und in welcher Form sind die register-Dateninhalte abgelegt? Ich habe versucht per "append.parseFunc.short.amp; = " dem mehr-Link die überflüssigen amps abzunehmen, hat leider nicht geklappt.

daKmoR ·

welche tinymce_rte version?

in der Datei: ext_localconf.php
findest du: // user function to force typolink creation of every link

dies wurde deswegen implementiert damit a href="22" auch zu einem korrekten typolink umgewandelt werden. Hier könnte eventuell so etwas passiert - was aber unwahrscheinlich ist da es hier nur analysiert werden.

in der Datei: static/setupTSConfig.ts
findest du: # function to allow custom link attributes
mit
lib.parseFunc.tags.a

wo man vielleicht ein htmlSpecialChars = 0 setzten könnte...

nichts davon ist getestet - sollte aber einen Ansatz geben. Lösung falls sie gefunden wird bitte posten ansonsten einen bug reporten:
http://forge.typo3.org/projects/extension-tinymce_rte/issues

tulkas ·

Die Lösungsvorschläge haben leider auch nicht geholfen, aber ich hab mal in den Versionen geforscht. Wir verwenden die neueste Version (0.3.1), da tritt der Bug auf. Bei den älteren Versionen tritt der Bug ab Version 0.2.0 auf, 0.1.4 läuft noch einwandfrei.
Ich habe in der forge leider keine list-of-changes gefunden, sonst könnte ich schauen was sich zwischen 0.1.4 und 0.2.0 geändert hat und den bug fixen. Habt ihr irgendwo eine?
Ich poste solange mal den Bug in die forge.