[TYPO3-german] Word-Formatierungen verbieten
Peter Linzenkirchner
liste at lisardo.de
Fri Aug 22 16:56:52 CEST 2008
Hallo Bernd,
nochmals der Quellcode, etwas bereinigt. Die drei Klammern müssen
sein ... Ich habe folgende Schachtel:
RTE.default {
proc {
entryHTMLparser_db {
tags {
p {
....
}
}
}
}
}
entryHTMLparser_db muss m. W. auch rein, sonst sollte tags gar nicht
wirken, da das proc-Objekt selbst tags nicht kennt. entryHTMLparser_db
wirkt - wenn ich das richtig verstehe - beim Übergang vom RTE in die
Datenbank.
## Default RTE configuration
RTE.classes {
# Blockstile
# ACHTUNG: wegen eines Fehlers in Safari _müssen_ die Klassen in
# konsequenter Kleinschreibung definiert werden!!
csc-frame-rulerbefore {
name = Linie davor
value =
}
# snip, sind unwichtig.
# Tabellenstile
# Textauszeichnungen
# folgen.
}
## Linkdefinitionen
RTE.classesAnchor {
externalLink {
class = external-link
type = url
titleText = LLL:EXT:rtehtmlarea/htmlarea/plugins/TYPO3Link/
locallang.xml:external_link_titleText
}
# snip, sind unwichtig.
}
RTE.default {
# bei mir unwichtig, aber wenn man Schriftauswahl zulässt,
# verwendet Firefox damit CSS anstatt den font-Tag. Der IE
# bleibt aber beim Font-Tag, insofern bringts eigentlich nichts.
useCSS = 1
# das folgende ist jetzt wichtig ...
enableWordClean = 1
removeTrailingBR = 1
removeComments = 1
removeTags = center, font, o:p, sdfield, strike, u
removeTagsAndContents = style, script
defaultLinkTarget =
# alle Buttons ein, danach alle unerwünschten
# ausschalten.
showButtons = *
hideButtons (
lefttoright, righttoleft, formattext, bidioverride, big,
citation, definition, insertedtext, italic, keyboard,
monospaced, sample, small, span, strikethrough,
variable, user, bold, underline, fontstyle, fontsize,
blockquote, insertparagraphbefore, insertparagraphafter,
spellcheck, emoticon, inserttag, copy, cut, paste,
justifyfull, textcolor, bgcolor,
)
## Button-Gruppen bilden
keepButtonGroupTogether = 1
## Statusbar - die ist genial.
showStatusBar = 1
## selten genutzte Tags in der Absatzpalette verbergen: ganz nach
## Gusto :-)
hidePStyleItems = pre,address,h5,h6,div
## ignoriert alle InlineStyles => für externes Stylesheet.
ignoreMainStyleOverride = 1
# CSS-Datei für den RTE - einfach die Haupt-CSS-Datei übernehmen.
# Bin zu faul für eine eigene CSS-Datei für den RTE
contentCSS=fileadmin/css/screen/content.css
proc {
# jetzt folgen die Transformationsregeln, die beim Speichern wirken.
# etliche sind überflüssig, da sie durch Typical bereits eingestellt
# sind. Aber um nicht immer nachschauen zu müssen, werden sie
# wiederholt.
dontConvBRtoParagraph = 1
preserveDIVSections = 1
allowTagsOutside = hr, address
# Da muss jetzt der span-Tag rein ...
allowTags (
a, abbr, acronym, address, blockquote, b, bdo, big, br, caption,
center, cite, code, col,
colgroup, del, dfn, div, em, h1, h2, h3, h4, h5, h6, hr, i, img,
ins, kbd, li, link,
ol, p, pre, q, samp, sdfield, small, span, strike, strong, sub,
sup, table, thead, tbody, tfoot,
td, th, tr, tt, u, ul, var,
)
# alle Klassen, die im RTE benutzt werden sollen, müssen hier
# erlaubt werden, sonst werden sie beim Speichern
# raustransformiert.
allowedClasses (
align-left,align-center,align-right,csc-frame-rulerbefore,
csc-frame-rulerafter,
csc-frame-indent,csc-frame-frame1,csc-frame-frame2,
kleinertext, grossertext,
contenttable-1,contenttable-2, layout
external-link, external-link-new-window, internal-link,
internal-link-new-window, download, mail,
component-items, action-items,
component-items-ordered, action-items-ordered,
serifen, starkebetonung, betonung, hellgrau, dunkelgrau,
)
# OK, jetzt gehts ins Detail: Tag für Tag die passende
# Transformationsvorschrift für den Übergang vom RTE in
# die Datenbank.
entryHTMLparser_db = 1
entryHTMLparser_db {
tags {
p {
allowedAttribs = id, title, dir, lang, xml:lang, class
# ok, raus mit align, veraltet
fixAttrib.align.unset = 1
# und weg mit den style="" Definitionen; die will ich nicht erlauben
# da ich alles über eigene Klassen erledige. Funktioniert in
# keinem Browser richtig ...
fixAttrib.style.unset = 1
}
# und übertragen auf alle wesentlichen Blockdefinitionen.
# Mal schauen, ob ich das evtl. noch für img und ul/ol erweitern
# muss.
div < .p
h1 < .p
h2 < .p
h3 < .p
h4 < .p
h5 < .p
h6 < .p
# b und i mappen zu strong und em; das sind Relikte aus Word, die
# in verschiedenen Browsern entstehen (IE + Safari, glaube ich)
b.remap = strong
i.remap = em
# Ende tags
}
# Ende entryHTMLparser_db
}
# Ende proc
}
# nur Klassen mit Tags erlauben/verbieten. z. B. : p.klasse {border:
# 1px solid #ccc} da ich mein Haupt-Stylesheet verwende, verbiete
# ich Klassen ohne Tags, sonst gibts Salat in den Menüs ...
showTagFreeClasses=0
# hier wird definiert, welche Klassen den Redakteuren zur
# Verfügung gestellt werden: die vorhandenen Klassen für die
# Zeichenformatierung werden hier ausgeschaltet:
classesParagraph (
# snip, unwichtig. Alle KLassen nennen!
csc-frame-rulerbefore,
)
classesCharacter (
# snip, unwichtig. Alle KLassen nennen!
starkebetonung,
)
# Klassendefinition für die gesamte Tabelle
classesTable = contenttable-1,contenttable-2
# Klassendefinition für die einzelnen Zellen
# das kann für tr, thead, tbody ebenfalls gemacht werden
classesTD = hellgrau1, dunkelgrau1
classesLinks (
external-link, external-link-new-window, internal-link,
internal-link-new-window, download, mail
)
classesAnchor (
external-link, external-link-new-window,
internal-link, internal-link-new-window,
download, mail
)
classesAnchor.default {
page = internal-link
url = external-link-new-window
file = download
mail = mail
}
# Das sind Definitionen aus den Grundeinstellungen, die ich noch
# nicht richtig kenne ...
# Lasse ich stehen, damit ich sie nicht vergesse.
## Remove the following fieldsets from the properties popups
disableAlignmentFieldsetInTableOperations = 1
disableSpacingFieldsetInTableOperations = 1
disableColorFieldsetInTableOperations = 1
disableLayoutFieldsetInTableOperations = 1
## Show borders on table creation
buttons.toggleborders.setOnTableCreation = 1
# Ende RTE.default
}
# Das hier löst die Transformation und Code-Bereinigung im IE nach dem
# Einfügen des Textes aus.
# die Definition weicht etwas ab von der beim Speichern weiter oben:
RTE.default.enableWordClean.HTMLparser {
# Die Tags a, span, font fehlen und werden deshalb entfernt
allowTags (
abbr, acronym, address, blockquote, b, bdo, big, br, caption,
center, cite, code, col,
colgroup, del, dfn, div, em, h1, h2, h3, h4, h5, h6, hr, i, img,
ins, kbd, li, link,
ol, p, pre, q, samp, sdfield, small, strike, strong, sub, sup,
table, thead, tbody, tfoot,
td, th, tr, tt, u, ul, var
)
tags {
p {
allowedAttribs = id, title, dir, lang, xml:lang, class
fixAttrib.align.unset = 1
fixAttrib.style.unset = 1
}
div < .p
h1 < .p
h2 < .p
h3 < .p
h4 < .p
h5 < .p
h6 < .p
}
}
# Übergabe der Einstellungen an den RTE fürs Frontend
RTE.default.FE < RTE.default
RTE.default.FE.showStatusBar = 0
RTE.default.FE.hideButtons (
chMode, blockstyle, textstyle, underline,
strikethrough, subscript, superscript, lefttoright, righttoleft, left,
center, right, justifyfull, table, inserttag, findreplace,
removeformat, copy, cut, paste
)
RTE.default.FE.userElements >
RTE.default.FE.userLinks >
RTE.default.FE.proc < RTE.default.proc
# Wieder Regeln aus den Grundeinstellungen, sind nicht nötig, da sie
# eh gelten.
RTE.config.tt_content.bodytext >
RTE.config.tt_content.bodytext.proc.overruleMode = ts_css
RTE.config.tt_content.bodytext.types.text.proc.overruleMode = ts_css
RTE.config.tt_content.bodytext.types.textpic.proc.overruleMode = ts_css
_______________________________________________
TYPO3-german mailing list
TYPO3-german at lists.netfielders.de
http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-german
More information about the TYPO3-german
mailing list