TYPO3: RTE-Standardkonfiguration für YAML
TYPO3: RTE-Standardkonfiguration für YAML
Für TYPO3 existieren eine Vielzahl von RTE-Standardkonfigurationen (z.B. die von sk-typo3), allerdings keine wirklich gute für YAML. Dieser Artikel stellt eine Lösung vor.
Es wird angenommen, dass die YAML-Vorlagen-Datei content.css im Verzeichnis fileadmin/css/screen/ liegt. Falls nicht, muss der Pfad angepasst werden.
Für das TS-Template genügt es, wenn man content (default) und cset Stylesheet in der Seite integriert – css_styled_content ist eher hinderlich, wenn man YAML verwendet.
Die Datei content.css wird um folgende TYPO3-relevante Einträge ergänzt:
- Quelltext: Alles auswählen | Zeilennummerierung an/aus
-
- .align-right { text-align: right; }
- .align-left { text-align: left; }
- .align-justify { text-align: justify; }
- .align-center { text-align: center; }
Damit wird sichergestellt, dass die Ausrichtung der Absätze korrekt vorgenommen wird. RTE wird im Seiten(!)-Setup der Wurzelseite wie folgt eingerichtet:
- Quelltext: Alles auswählen | Zeilennummerierung an/aus
-
- #*** RTE Classe des Interface (Ausrichtung)
- RTE.classes {
- align-left {
- name = Linksbündig
- value = text-align: left;
- }
- align-right {
- name = Rechtsbündig
- value = text-align: right;
- }
- align-justify {
- name = Blocksatz
- }
- align-center {
- name = Zentriert
- value = text-align: center;
- }
- float_left {
- name = Links mit Textumfluss
- value = text-align: left;
- }
- center {
- name = Zentriert (Bild)
- value = text-align: center;
- }
- float_right {
- name = Rechts mit Textumfluss
- value = text-align: right;
- }
- highlight {
- name = Hervorhebung
- value = color:#c30;
- }
- dimmed {
- name = Ausgegraut
- value = color:#888;
- }
- info {
- name = Info
- value = background:#f8f8f8; color:#666;
- }
- note {
- name = Anmerkung
- value = background:#efe; color:#040;
- }
- important {
- name = Wichtig
- value = background:#ffe; color:#440;
- }
- warning {
- name = Warnung
- value = background:#fee; color:#400;
- }
- }
- #
- # *** Entfernt das Bild vor den Links
- RTE.classesAnchor {
- internalLink {
- class = internal-link
- type = page
- image >
- }
- externalLink {
- class = external-link
- type = url
- image >
- }
- externalLinkInNewWindow {
- class = external-link-new-window
- type = url
- image >
- }
- internalLinkInNewWindow {
- class = internal-link-new-window
- type = page
- image >
- }
- download {
- class = download
- type = file
- image >
- }
- mail {
- class = mail
- type = mail
- image >
- }
- }
- ## RTE Konfiguration
- RTE.default {
- # Zuweisung der CSS-Datei - ggf. ändern!
- contentCSS = fileadmin/css/screen/content.css
- ## Markup options
- enableWordClean = 1
- removeTrailingBR = 1
- removeComments = 1
- removeTags = center, sdfield
- removeTagsAndContents = style,script
- # Buttons die gezeigt/versteckt werden
- showButtons = formatblock, textstyle, textstylelabel, blockstyle, blockstylelabel, bold, italic, underline, orderedlist, unorderedlist, insertcharacter, line, link, image, removeformat, table, toggleborders, tableproperties, rowproperties, rowinsertabove, rowinsertunder, rowdelete, rowsplit, columninsertbefore, columninsertafter, columndelete, columnsplit, cellproperties, cellinsertbefore, cellinsertafter, celldelete, cellsplit, cellmerge, findreplace, insertcharacter, undo, redo, showhelp, about, chMode, left, center, right
- hideButtons = fontstyle, fontsize, strikethrough,lefttoright, righttoleft, textcolor, bgcolor, textindicator, emoticon, user, spellcheck, inserttag, outdent, indent, justifyfull, subscript, superscript, acronym, copy, cut, paste
- # Hält die RTE Icons gegroupt zusammen
- keepButtonGroupTogether = 1
- # blendet Statusbar in htmlarea aus
- showStatusBar = 0
- ## Add styles Left, center and right alignment of text in paragraphs and cells.
- inlineStyle.text-alignment (
- p.float_left, h1.float_left, h2.float_left, h3.float_left, h4.float_left, h5.float_left, h6.float_left, td.float_left { float: left; }
- p.center, h1.center, h2.center, h3.center, h4.center, h5.center, h6.center, td.center { text-align: center; }
- p.float_right, h1.float_right, h2.float_right, h3.float_right, h4.float_right, h5.float_right, h6.float_right, td.float_right { float: right; }
- p.align-left, h1.align-left, h2.align-left, h3.align-left, h4.align-left, h5.align-left, h6.align-left, td.align-left { text-align: left; }
- p.align-center, h1.align-center, h2.align-center, h3.align-center, h4.align-center, h5.align-center, h6.align-center, td.align-center { text-align: center; }
- p.align-right, h1.align-right, h2.align-right, h3.align-right, h4.align-right, h5.align-right, h6.align-right, td.align-right { text-align: right; }
- )
- ## Use stylesheet file rather than the above mainStyleOverride and inlineStyle properties to style the contents (htmlArea RTE only)
- ignoreMainStyleOverride = 1
- proc {
- # tags die erlaubt / verboten sind
- allowTags = table, tbody, tr, th, td, h1, h2, h3, h4, h5, h6, div, p, br, span, ul, ol, li, re, blockquote, strong, em, b, i, u, sub, sup, strike, a, img, nobr, hr, tt, q, cite, abbr, acronym, center
- denyTags = font
- # br wird nicht zu p konvertiert
- dontConvBRtoParagraph = 1
- # tags sind erlaubt außerhalt von p, div
- allowTagsOutside = img,hr,typohead
- # erlaubte attribute in p, div tags
- keepPDIVattribs = align,class,style,id
- # List all class selectors that are allowed on the way to the database
- allowedClasses (
- external-link, external-link-new-window, internal-link, internal-link-new-window, download, mail,
- align-left, align-center, align-right, align-justify, float_left, float_right, center, highlight, dimmed, note, important, info, warning
- )
- # html parser einstellungen
- HTMLparser_rte {
- # tags die erlaubt/verboten sind
- allowTags < RTE.default.proc.allowTags
- denyTags < RTE.default.proc.denyTags
- # tags die untersagt sind
- removeTags = font
- # entfernt html-kommentare
- removeComments = 1
- # tags die nicht übereinstimmen werden nicht entfernt (protect / 1 / 0)
- keepNonMatchedTags = 0
- }
- # Content to database
- entryHTMLparser_db = 1
- entryHTMLparser_db {
- # tags die erlaubt/verboten sind
- allowTags < RTE.default.proc.allowTags
- denyTags < RTE.default.proc.denyTags
- # CLEAN TAGS
- noAttrib = b, i, u, strike, sub, sup, strong, em, quote, blockquote, cite, tt, br, center
- rmTagIfNoAttrib = span,div,font
- # htmlSpecialChars = 1
- ## align attribute werden erlaubt
- tags {
- p.fixAttrib.align.unset >
- p.allowedAttribs = class,style,align
- div.fixAttrib.align.unset >
- hr.allowedAttribs = class
- # b und i tags werden ersetzt (em / strong)
- b.remap = strong
- i.remap = em
- ## img tags werden erlaubt
- img >
- h1.remap = typohead type="1"
- h2.remap = typohead type="2"
- h3.remap = typohead type="3"
- h4.remap = typohead type="4"
- h5.remap = typohead type="5"
- h6.remap = typohead type="6"
- }
- }
- }
- # Classes: Ausrichtung
- classesParagraph (
- align-left, align-right, align-justify, align-center, float_left, float_right, note, important, info, warning
- )
- # Classes: Eigene Stile
- classesCharacter = highlight, dimmed
- classesImage= float_left, float_right, center
- # Classes für Links (These classes should also be in the list of allowedClasses)
- 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
- }
- # zeigt alle CSS-Klassen die in formate.css vorhanden sind
- showTagFreeClasses = 1
- # Do not allow insertion of the following tags
- hideTags = font
- # Tabellen Optionen in der RTE Toolbar
- hideTableOperationsInToolbar = 0
- keepToggleBordersInToolbar = 1
- # Tabellen Editierungs-Optionen (cellspacing/ cellpadding / border)
- disableSpacingFieldsetInTableOperations = 1
- disableAlignmentFieldsetInTableOperations=1
- disableColorFieldsetInTableOperations=1
- disableLayoutFieldsetInTableOperations=1
- disableBordersFieldsetInTableOperations=0
- }
- # Use same processing as on entry to database to clean content pasted into the editor
- # FE RTE configuration (htmlArea RTE only)
- RTE.default.FE < RTE.default
- RTE.default.FE.userElements >
- RTE.default.FE.userLinks >
- # Breite des RTE in Fullscreen-Ansicht
- TCEFORM.tt_content.bodytext.RTEfullScreenWidth= 80%
- 4 Kommentare
Super
Traum-Konfig, vielen Dank.
Re: Super
Freut mich, wenn es nützt :-)
Danke dafür aber...
Hallo,
danke für die Konfig, werde sie ausprobieren, wenn ich endlich mal Zeit für meine Seite habe.
Kann allerdings noch jemand bitte zu dieser Aussage eine ausführlichere Erklärung abgeben:
-----
Für das TS-Template genügt es, wenn man content (default) und cset Stylesheet in der Seite integriert – css_styled_content ist eher hinderlich, wenn man YAML verwendet.
-------
Ich habe bisher immer CSC, auch in Verbindung mit YAML verwendet. Ist mit diesen TS-Templates auch eine valide, mit CSS gestylte Ausgabe von Inhalten möglich? Wie z.B. "Text mit Bild im Text rechts"? Und dann gibts ja noch eine Extension css_styled_multimedia usw.
Dachte, dass alles außer CSC eher "veraltet" oder für spezielle Zwecke (z.B. Newsletter Templates) ist, bzw. CSC state of the art für eine moderne HTML(5?), CSS, valide und barrierearme Ausgabe ist.
Danke für mehr Licht im Dunkeln :-)
Alex
Re: Danke dafür aber...
Stimmt, CSC ist eigentlich eine wesentlich bessere Variante für Seiten. Ich würde es inzwischen auch auf jeden Fall zusammen mit YAML einsetzen. Wie gesagt, CSC und YAML beißen sich teilweise, bzw. man muss halt wissen, dass Content-Styles von YAML z.T. durch CSC überschrieben werden. Ich löse das inzwischen hin und wieder durch das Löschen des CSC-Styles via:
plugin.tx_cssstyledcontent._CSS_DEFAULT_STYLE >
Danach kann man seine eigenen Styles definieren, bzw. Teile des CSC übernehmen. Ist vielleicht nicht die idealste Variante, funktioniert jedoch ganz gut. Es gibt im Netz im Übrigen einige Hinweise, wie man die Klassen von CSC in den Headern usw. wegbekommt.
Hoffe, das hilft.