SITE42


Die Einstellungen in "proc"

Unabhängig von der Wahl des Default Configuration Setting wird dieselbe Standardeinstellung für die RTE Content Transformation vorgenommen.

Diese Einstellungen bestimmen, was mit dem Inhalt des RTE-Feldes auf dem Weg in die Datenbank und von der Datenbank zurück in die Anzeige im RTE-Feld passieren soll.

[1] RTE.default.proc

Die Details, wie die Transformation zwischen RTE und Datenbank aussehen soll, werden über die Klasse t3lib_parsehtml_proc gesteuert. Mit

overruleMode = ts_css

werden Filter gesetzt, die bestimmen, welche Funktionen daraus aufgerufen werden sollen. Die Einstellung ts_css beinhaltet eine Liste von Filtern, die auf die Verwendung von css_styled_content abgestimmt sind.
Diese Einstellung überschreibt eine im TCA gesetzte und ggf. abweichende RTE-Transformationseinstellung.

dontConvBRtoParagraph = 1

sorgt dafür, dass ein br nicht in ein p umgewandelt wird, weil davon ausgegangen wird, dass der Redakteur den Unterschied zwischen "Enter" und "Shift-Enter" kennt.

remapParagraphTag = p

laut RTE-Handbuch ist dieser Eintrag aus Kompatibilität zum klassischen RTE vorhanden. Als Alternative wäre hier div möglich, da css_styled_content als Absatz-tag aber sowieso p vorsieht, bewirkt eine abweichende Einstellung dieses Eintrags alleine nichts.

allowTagsOutside = hr, address

gibt die Liste der tags an, die ausserhalb von p erlaubt sind.

allowTags (
        a, abbr, acronym, address, blockquote, b, br, caption, center, cite, code, div, em, font, h1, h2, h3, h4, h5, h6, hr, i, img, li, link, ol, p, pre, q, sdfield, span, strike, strong, sub, sup, table, thead, tbody, tfoot, td, th, tr, tt, u, ul
        )

gibt die Liste der erlaubten tags an. Es gibt eine interne Liste erlaubter tags (siehe Kommentar im PageTS), die nur eine Teilmenge dieser tags abdeckt.

denyTags >

kann verwendet werden, um eine Liste nicht erlaubter tags anzugeben. Besser ist es jedoch, dies durch Regeln genauer einzustellen (siehe unten).

keepPDIVattribs = xml:lang

erhält die gelisteten Attribute mit dem p-tag. Ohne besondere Nennung gehören laut RTE API bereits class und align dazu, wobei align mit einer weiteren Einstellung entfernt wird, da nicht standardkonform.

entryHTMLparser_db = 1

aktiviert den HTMLparser für den Inhalt vor der Transformation gemäss den eingestellten Filtern mit den im Abschnitt [2] beschriebenen Einstellungen.

exitHTMLparser_db = 1

aktiviert den HTMLparser für den Inhalt nach der Transformation gemäss den eingestellten Filtern mit den im Abschnitt [4] beschriebenen Einstellungen.

[2] RTE.default.proc.entryHTMLparser_db

allowTags < RTE.default.proc.allowTags

übernimmt die Liste der erlaubten tags.

denyTags >

kann verwendet werden, um eine Liste nicht erlaubter tags anzugeben. Besser ist es jedoch, dies durch Regeln genauer einzustellen (siehe unten).

htmlSpecialChars = 0

verhindert, dass der Inhalt zweimal durch htmlspecialchars() behandelt wird.

tags {
            img.allowedAttribs = 0
            img.rmTagIfNoAttrib = 1
        }

entfernt das img tag, indem keine Attribute erlaubt werden und img ohne Attribute entfernt wird. Dies ist die Grundeinstellung, die bei Aktivierung der Option "Enable images in the RTE" überschrieben wird.

tags {
            span.fixAttrib.style.unset = 1
            p.fixAttrib.align.unset = 1
            div.fixAttrib.align.unset = 1
        }

entfernt bei span das Attribut style sowie bei p und div das Attribut align.

tags {
            hr.allowedAttribs = class
            b.allowedAttribs = xml:lang
            blockquote.allowedAttribs = xml:lang
            cite.allowedAttribs = xml:lang
            em.allowedAttribs = xml:lang
            i.allowedAttribs = xml:lang
            q.allowedAttribs = xml:lang
            strong.allowedAttribs = xml:lang
            sub.allowedAttribs = xml:lang
            sup.allowedAttribs = xml:lang
            tt.allowedAttribs = xml:lang
        }

erlaubt für die genannten tags die jeweils rechts bezeichneten Attribute.

Diese Einstellungen unter RTE.default.proc.entryHTMLparser_db.tags müssen erweitert bzw. verändert werden, wenn man selbstdefinierte Klassen im RTE verwenden möchte.

Darüber hinaus können über diese Einstellungen Texte noch weiter bereinigt werden, die aus MS Word kopiert wurden und mit den nachfolgenden "Reinigungsmassnahmen" noch nicht vollständig von "tag-Müll" befreit werden konnten.

removeTags = center, font, o:p, sdfield, strike, u

entfernt tags, die beim Kopieren von Texten aus MS Word oder Open Office unbeabsichtigt "mitgenommen" worden sind, sowie tags, die als nicht standardkonform gelten. Hierzu zählt auch das u für unterstreichen, da Unterstreichung als Markierung für einen Link verwendet wird und ein unterstrichener aber nicht verlinkter Text somit zu Missverständnissen führt.

keepNonMatchedTags = protect

bewirkt, dass custom tags erhalten bleiben, wenn sie nicht in der Liste der erlaubten tags stehen, jedoch die Zeichen < und > in ihre Entities umgewandelt werden, Beispiel: <mytag>irgendein Text</mytag>.

[3] RTE.default.proc.HTMLparser_db

Dieser Abschnitt bereinigt den Inhalt mit den aufgeführten Parametern für die Funktion HTMLparser auf dem Weg in die Datenbank.

noAttrib = br

entfernt alle Attribute bei den gelisteten tags. Diese Liste enthält standardmässig wesentlich mehr tags (siehe Kommentar im PageTS). Da dieser Eintrag aber alle Attribute einschliesslich des erwünschten xml:lang entfernen würde, enthält sie nur das br. Die Bereinigung der anderen tags um nicht erwünschte Attribute fand bereits weiter oben statt (RTE.default.proc.entryHTMLparser_db), so dass diese hier bereits "sauber" sind.

xhtml_cleaning = 1

bereinigt den Inhalt, so dass er XHTML-konform ist. Laut Dokumentation ist dieser Parameter noch experimentell und bewirkt lediglich korrekte Schwreibweise in Kleinbuchstaben und Ergänzung des / bei nicht schliessenden tags.

[4] RTE.default.proc.exitHTMLparser_db

tags.b.remap = strong
tags.i.remap = em

bewirkt, dass b in strong und i in em gewandelt wird, damit der Inhalt standardkonform ausgegeben wird.

keepNonMatchedTags = 1

bewirkt, dass ale tags, die bis zu dieser Stelle noch nicht durch andere Massnahmen gefiltert oder gelöscht worden sind, erhalten bleiben.

htmlSpecialChars = 0

verhindert, dass der Inhalt zweimal durch htmlspecialchars() behandelt wird.

[5] RTE.default.FE.proc

RTE.default.FE.proc < RTE.default.proc

Die Einstellungen die für die Behandlung des Inhaltes zwischen RTE und Datenbank im Backend festgelegt wurden, gelten auch für den RTE beim Frontend Editing.

[6] RTE.config

Für das Feld bodytext in der Tabelle tt_content wird der Modus der Transformation zwischen RTE-Feld und Datenbank noch einmal explizit festgelegt.

tt_content.bodytext >

löscht ggf. für dieses Feld in anderen Extensions gesetzte RTE-Konfigurationen.

tt_content.bodytext.proc.overruleMode = ts_css
tt_content.bodytext.types.text.proc.overruleMode = ts_css
tt_content.bodytext.types.textpic.proc.overruleMode = ts_css

setzt nacheinander für das Feld bodytext sowie für die Inhaltselementtypen text und textpic den Transformationsmodus.

Eigentlich reicht die Einstellung unter RTE.default, wenn jedoch für das Feld bodytext andere Einstellungen in anderen Extensions gesetzt wurden, können diese hier querschiessen, wenn sie nicht explizit überschrieben werden.