Zum Inhalt springen

RTE ändert Reihenfolge der HTML-Elemente

Erstellt am 10. Mai 2011 · 6 Antworten · letzte Antwort am 14. Mai 2012

Tags: Frage

sem ·

Hallo,

ich hab ein Problem mit dem RTE. Und zwar macht er mir aus folgendem Code (in der HTML-Ansicht im RTE):

<div class="box-right"><p>TEXT TEXT</p>...</div>

.. nach dem Abspeichern bei der Ausgabe folgenden Code:

<p class="bodytext"><div class="box-right">TEXT TEXT</p> ...</div>

Er hängt also dem P-Tag die Klasse an, was ja okay ist, aber schiebt das P-Tag ausser den DIV. Dieser Code ist damit natürlich nicht mehr valide.

Hat hier jemand eine Idee womit das zusammenhängen kann?

EDIT:
Sehe gerade dass in der Datenbank die P-Tags gar nicht drin sind. Da schauts so aus:

<div class="box-right">TEXT TEXT ...</div>

Also werden beim Speichern die P-Tags entfernt und beim Rendern der Seite das P-Tag falsch eingefügt.... *?*

Danke, schöne Grüße,
Andi

fiedomedia ·

Hallo,

schau mal im TypoScript Object Browser nach folgendem Wert:

lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.encapsTagList

und prüfe, ob bei den Werten div mit gelistet ist.

Das sind wenn ich mich richtig erinnere die HTML-Tags, die nicht von einem p-Tag gewrappt werden sollen.

Grüße Patrick

sem ·

Hi Patrick,

danke für den Tipp. Aber leider hat er nix geholfen. DIV stand zwar nicht in der Liste. Hab das aber eingetragen und alle Caches gelöscht, doch leider bleibt das Problem bestehen.

Es ist eigentlich meiner Meinung auch so, dass nicht der DIV von dem P umschlossen wird, sondern das P-Tag des Textes IN dem DIV beim Seiten rendern einfach vor den DIV rutscht.

Kurz gesagt, aus:

<div><p>..</p></div> wird dann
<p><div>..</p></div>

Aber erst wenn der Inhalt wieder aus der Datenbank kommt. In der DB stehen die P-Tags ja nicht.

Danke, LG
Andi

sem ·

Kleiner Nachtrag, häng immer noch bei dem Problem ... :-(

Also es scheint so dass beim Rendern die Tags nicht erkannt werden, es passiert z.B. folgendes:

<blockquote><p>hier ist der zitierte text</p></blockquote>

wird zu:

<p><blockquote><p/><p>hier ist der zitierte text</p><p></blockquote></p>

Das Blockquote-Tag wird also von P-Tags umschlossen. Das gleiche eben bei DIV z.B.

Folgendes hat leider nicht geholfen, obwohl ich dachte dass das die Lösung wäre, da er Blockquote und DIV anscheinend nicht als Tags erkannt hat die andere Elemente umschliessen dürfen und er sie dann standardmäßig mit dem <p class="bodytext"> wrappt:

RTE.default.proc.allowTagsOutside = div,blockquote

===================
Nachtrag:

Kleine Verständnisfrage, vielleicht liest den Thread ja doch wer :-).

Wenn ich den Source im RTE abspeichere und auf die Source-Ansicht im RTE gehe steht es RICHTIG da. In der Datenbank stehts auch (nur halt ohne die P-Tags, die werden da ja nicht übernommen). Wenn ich das Inhaltselement nochmal öffne und in die Source-Ansicht im RTE wechsle steht IMMER NOCH RICHTIG da.

Also war mein Ansatz (dass irgendwo der Fehler beim Transformieren RTE <-> DB passiert) nicht richtig, oder? Denn eigentlich kommts korrekt wieder in den RTE.

Nur beim Rendern der Seite selber im Frontend ist es falsch....

Hat jetz ev. wer eine Idee?

Danke für jeden Tipp, lg Andi

fiedomedia ·
sem schrieb

Nur beim Rendern der Seite selber im Frontend ist es falsch....

Dann MUSS das mit "lib.parseFunc_RTE" zu tun haben, weil genau diese Funktion für das Parsen der Inhalte aus der DB zuständig ist. Hier wird entschieden, wie der Inhalt im Frontend aussehen soll.

Bei mir hat folgendes TS im PageTS geholfen:

lib.parseFunc_RTE {
  nonTypoTagStdWrap.encapsLines {
    # div wird zur Liste der umschließenden Tags hinzugefügt und soll nicht noch einmal gewrappt werden
    encapsTagList := addToList(div)
    # DIVs sollen nicht ersetzt werden
    remapTag.DIV =
  }
}

Wenn ich einen Div-Container im RTE eintrage, dann wird dieser im FE auch nicht mehr von einem P-Tag gewrappt...

Grüße Patrick

sem ·

Hi Patrick,

danke nochmals - aber leider funktioniert das nicht. Hab den Code genau so eingefügt... :-(

Langsam werd ich verrückt - nix hilft.

Gruß
Andreas

sem ·

Push....

Dieses Problem behindert mich immer wieder bei Erweiterungen der Seite.

Hat hier echt niemand eine Idee? :-(