Hi,
hab grad im RTE "Einzug vergrößern" ausprobiert und bin entsetzt: da wird doch tatsächlich einfach <blockquote> verwendet! Das sollte wirklich nur für Zitate eingesetzt werden.
Wie kann ich dem RTE beibringen, stattdessen zu <p> eine Klasse hinzuzufügen, z.B. <p class="einzug">, die ich dann per css formatiert wird?
lg stef
Hast du schon eine Lösung gefunden wie man die Buttons Einzug vergrößern und Einzug verkleinern anders belegen kann?
Ab TYPO3 4.2 wird ein p-tag mit einer Klasse verwendet.
Die lässt sich dann im Stylesheet konfigurieren.
In TYPO3 4.1 geht es nicht anders als mit blockquote.
Ich hab blockquote aus dem RTE verbannt.
1. Lieber kein Einzug als so ein Schwachsinn!
2. Wenn man den Einzug braucht, ist es ja auch mit 4.1 kein Problem, dafür eine eigene p-Klasse zu machen, die im RTE zugewiesen werden kann.
lg Steffi
die <p> ist kein geeigneter Ersatz für die gewünschte Funktion:
<p class="ein-em-einzug">
<p class="ein-em-einzug">
<p class="ein-em-einzug">
Text mit drei em Einzug
</p>
</p>
</p>
...ist natürlich nicht valide
<blockquote class="ein-em-einzug">
<blockquote class="ein-em-einzug">
<blockquote class="ein-em-einzug">
Text mit drei em Einzug
</blockquote>
</blockquote>
</blockquote>
...ist valide aber semantischer Schwachsinn
die neue Variante vom Editor bei TYPO3 4.2 sieht jetzt so aus:
<div class="indent">
<div class="indent">
<div class="indent">
<p>
die neue Variante
</p>
</div>
</div>
</div>
nicht schlecht!
Aber diese Verschachtelung ist meiner Meinung nach unnötig - und v.a. unnötig langer Code.
So viele verschieden weite Einzüge brauch zumindest ich nie, es reicht 2-3 verschiedene p-Klassen dafür zu machen.
lg Steffi
Bei mir scheint das mit dem Einrücken nur im RTE selbst zu funktionieren - dort erhalte ich den gewünschten HTML-Quellcode, denn auch klognfurta angibt:
<div class="indent"><p>Einrücken</p></div>
<div class="indent"><div class="indent"><p>Noch mehr einrücken</p></div></div>
Im Frontend hingegen wird folgender Code erzeugt:
<p class="indent">Einrücken</p>
<p class="indent"><div class="indent">Noch mehr einrücken</div></p>
Weiß jemand warum? Der Code ist natürlich nicht XHTML-valide - DIV-Container innerhalb von P-Absätzen sind nicht erlaubt.
Viele Grüße
Christian
Oder anders gefragt: wie sage ich dem RTE, dass er <div class="indent"> nicht in <p> umwandeln soll bei der Frontendausgabe?
Mit
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.remapTag.DIV >
kann das für ALLE Div-Tags erreichen. Aber gibt es eine Möglichkeit, das nur auf <div class="indent"> zu beschränken?
Bei obiger Lösung entstünde folgende Ausgabe:
<div class="indent">Einrücken</div>
<div class="indent"><div class="indent">Noch mehr einrücken</div></div>
Es fehlen die <p>-Tags innerhalb der <div>-Container. Wohin sind die verschwunden?
@Babyschlumpf:
Ich hatte das gleiche Problem, offenbar ist das seit Erscheinen der 4.2 noch niemandem aufgefallen... #paralyzed#
Nach kurzer Anfrage in typo3.projects.rte hat Stanislas Rolland sofort eine Lösung gepostet. Die wird wohl auch Teil der nächsten Version der CSS Styled Content Sys-Extension werden. Zitat:
[TYPO3-RTE] Indentation using wrapper DIVs
Stanislas Rolland schrieb:
...
Please try to add the following lines to your TS template:
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.encapsTagList := removeFromList(div)
lib.parseFunc_RTE.externalBlocks := addToList(div)
lib.parseFunc_RTE.externalBlocks.div.stripNL = 1
lib.parseFunc_RTE.externalBlocks.div.callRecursive = 1
Regards,
Stanislas
Ins TS-Setup eintragen und wohlfühlen.
--
Grüßings, Jörg Wagner.
DigiLog multimedia
Der Patch ist nun in Typo3 4.2.2 enthalten - dort besteht das Problem also nicht mehr. Damit könnte man das Problem als erledigt kennzeichnen...