Zum Inhalt springen

RTE Enable additional inline elements

Erstellt am 12. Oktober 2012 · 1 Antwort · letzte Antwort am 26. November 2013

Tags: Frage

Chrissli ·

Hallo Zusammen!

Vielleicht kennt jemand dieses Phänomen und kann etwas dazu sagen:

Ich habe in der Konfiguration für den RTE die Option "Enable additional inline elements" aktiviert.
Das beschert mir viele tolle RTE-Buttons für Tags wie <code> oder <cite>
Im TS habe ich die noch nicht erlaubten hinzugefügt:

lib.parseFunc.allowTags:=addToList(code,big,small,cite,dfn,tt,q,samp,var,bdo)
lib.parseFunc_RTE.allowTags:=addToList(code,big,small,cite,dfn,tt,q,samp,var,bdo)
lib.parseFunc_RTE.externalBlocks:=addToList(code,big,small,cite,dfn,tt,q,samp,var,bdo)

Funktioniert auch alles wunderbar, aber leider nur im RTE.
Dieser schreibt mit in der Code-Ansicht alles korrekt:

<p><b>Fett</b></p>
<p><strong>Strong</strong></p>
<p><i>Kursiv</i></p>
<p><em>Betont</em></p>
<p><big>Gross</big></p>
<p><small>Klein</small></p>
<p><ins>Eingefügt</ins></p>
<p><del>Gelöscht</del></p>
<p><cite>Zitat</cite></p>
<p><code>Code</code> </p>
<p><dfn>Definition</dfn></p>
<p><dfn>Keyboard</dfn></p>
<p><tt>Diktengleiche Schrift</tt></p>
<p><q>Kurzzitat</q></p>
<p><samp>Ausgabebeispiel</samp></p>
<p><var>Variable</var></p>
<p><bdo dir="rtl">Bidorektoinal</bdo></p>
<p><strike>Durstrichen</strike></p>
<p><sub>Tiefgestellt</sub></p>
<p><sup>Hochgestellt</sup></p>
<p><u>Unterstrichen</u> </p>
<p>Behälter</p>

In der HTML-Ausgabe werden aber einige der umschließenden P-Tags willkürlich geschlossen:

<p class="bodytext"><b>Fett</b></p>
<p class="bodytext"><strong>Strong</strong></p>
<p class="bodytext"><i>Kursiv</i></p>
<p class="bodytext"><em>Betont</em></p>
<p class="bodytext">&nbsp;</p><big>Gross</big><p class="bodytext">&nbsp;</p>
<p class="bodytext">&nbsp;</p><small>Klein</small><p class="bodytext">&nbsp;</p>
<p class="bodytext"><ins>Eingefügt</ins></p>
<p class="bodytext"><del>Gelöscht</del></p>

<p class="bodytext">&nbsp;</p><cite>Zitat</cite><p class="bodytext">&nbsp;</p>
<p class="bodytext">&nbsp;</p><code>Code</code><p class="bodytext">&nbsp;</p>
<p class="bodytext">&nbsp;</p><dfn>Definition</dfn><p class="bodytext">&nbsp;</p>
<p class="bodytext">&nbsp;</p><dfn>Keyboard</dfn><p class="bodytext">&nbsp;</p>
<p class="bodytext">&nbsp;</p><tt>Diktengleiche Schrift</tt><p class="bodytext">&nbsp;</p>
<p class="bodytext">&nbsp;</p><q>Kurzzitat</q><p class="bodytext">&nbsp;</p>
<p class="bodytext">&nbsp;</p><samp>Ausgabebeispiel</samp><p class="bodytext">&nbsp;</p>
<p class="bodytext">&nbsp;</p><var>Variable</var><p class="bodytext">&nbsp;</p>
<p class="bodytext">&nbsp;</p><bdo dir="rtl">Bidorektoinal</bdo><p class="bodytext">&nbsp;</p>

<p class="bodytext"><strike>Durstrichen</strike></p>
<p class="bodytext"><sub>Tiefgestellt</sub></p>
<p class="bodytext"><sup>Hochgestellt</sup></p>
<p class="bodytext"><u>Unterstrichen</u> </p>

Zumindest einige davon ( wie z.b. big ) sollten jedoch laut selfhtml.org Inline-Elemente und daher innerhalb des P-Tags erlaubt sein, oder nicht?

michak ·

Hi, stehe einem ähnlichen Problem.
Ich habe mir als User-Element nur das Code-Tag konfiguriert.
Hier schreibt er im RTE

<p>Etwas <code><?php echo = "Hallo Welt! http://www.typo3.net/";</code> der nicht durch parseFunc_RTE verändert werden soll.</p>

und im FE kommt dann folgendes raus

<p>Etwas </p><code><?php echo = "Hallo Welt! http://www.typo3.net/";</code><p> der nicht durch parseFunc_RTE verändert werden soll.</p>

Was ich noch mache ist, im Setup des Root-Templates die Autoverlinkung für das Code-Tag im FE unterbinde. Dies mache ich mit folgendem Code.

lib.parseFunc_RTE.externalBlocks := addToList(code)
lib.parseFunc_RTE.externalBlocks {
  pre.stripNL = 1
  pre.stdWrap.parseFunc = < lib.parseFunc
  pre.stdWrap.parseFunc.makelinks = 0
}

Kommentiere ich diese Zeilen aus, wird mir zwar alles in eine Zeile gepackt. Jedoch wird dann auch so mancher Code als Link interpretiert, was ich ja verhindern möchte.

<p>Etwas <code><?php echo = "Hallo Welt! <a href="http://www.typo3.net/">http://www.typo3.net/</a>";</code> der nicht durch parseFunc_RTE verändert werden soll.</p>