Typo3 - Rich Text Editor (RTE)

Aus Wikizone
Wechseln zu: Navigation, Suche

Snippets

CSS für RTE und einige Eigenschaften

TS Config

RTE.default {

    contentCSS = fileadmin/template/rte.css

    ## Markup options (htmlArea RTE only)
    enableWordClean = 1
    removeTrailingBR = 1
    removeComments = 1
    removeTags = center, o:p, sdfield
    removeTagsAndContents = style,script
    roteSchrift {
        name = Rote Schrift
        value = color: #8A0020;
    }
    graueSchrift {
        name = Graue Schrift
        value = color: #C0C0C0;
    }
    grueneSchrift {
        name = Grüne Schrift
        value = color: #5e912b;
    }

    proc.allowedClasses (
        external-link, external-link-new-window, internal-link, internal-link-new-window, download, mail,
        align-left, align-center, align-right, align-justify,
        csc-frame-frame1, csc-frame-frame2,
        component-items, action-items,
        component-items-ordered, action-items-ordered,
        roteSchrift, graueSchrift, grueneSchrift
        indent
    )

classesCharacter = roteSchrift, graueSchrift, grueneSchrift


Weiterführendes

Das sieht sehr gut aus -> sehr umfassend und ausführlich erklärt (Datum des Zugriffs 26.1.2010)

http://www.site42.de/Wie-konfiguriert-man-den-RTE-h.58.0.html


RTE-Konfiguration als Extension laden

Todo. Vgl. die Extension Rich Text Editor pre-configuration die bei den Examples steht.

RTE einrichten

Hinweis:

Ab Version 4 ist der Editor HTMLArea eingesetzt, den es für frühere Versionen als Extension gibt. Für Typo3 Versionen unter 4 muß die HTMLArea Extension in einer Version kleiner 1.3 installiert werden sonst gibt's eine Fehlermeldung beim Verlinken.

Das Aussehten des RTE, die verfügbaren Optionen und die HTML-Ausgabe läßt sich einstellen. Über das PageTS Config Feld der Seiten kann man z.B. einzelne Funktionen des RTE für den Seitenbaum abstellen.

Alternativer RTE

Als alternative bietet sich TinyMCE an. Er ist schlanker als htmlarea und läßt sich meist leichter einstellen. Allerdings bietet er nicht soviele Konfigurationsmöglichkeiten (Stand 2010)

RTE Standard CSS Stylesheet anpassen

Eigenes Stylesheet einbinden

Eine eigene Datei funktioniert für die Innerhalb des Texteditors. Um die Styles in den Dropdown-Feldern anzupassen muß man aber TypoScript anwenden (s.u.).

RTE.default {
   contentCSS = fileadmin/rte_css/css_htmlarea.css
   useCSS = 1
}

Anpassen der Klassen über TypoScript

Beispiel:

#Klassen hinzufügen
RTE.default.proc.allowedClasses := addToList(error,more-link, info-block, block)
RTE.default.classesParagraph := addToList(error,info-block)
RTE.default.classesCharacter := addToList(block)
RTE.default.classesAnchor := addToList(more-link)

#nicht benoetigte Klassen entfernen
RTE.default.classesParagraph := removeFromList(csc-frame-frame1, csc-frame-frame2)
RTE.default.proc.allowedClasses := removeFromList(csc-frame-frame1, csc-frame-frame2, important, name-of-person, detail)
RTE.classes := removeFromList(csc-frame-frame1, csc-frame-frame2, important, name-of-person, detail) 

#Klassen fuer die RTE Auswahlfelder definieren
RTE.classes.error {
   name = Error in Red
   value = color: #FF0000; font-weight: bold; background-color: #ffff00;
}

RTE.classesAnchor.more-link {
   name = Link with an Arrow
   value = background: transparent url(../img/arrow.png)no-repeat 0 0; padding:0 0 0 14px;
}
RTE.classesAnchor.info-block {
   name = Infoblock with grey background
   value = background-color: #ececec;
}

#NEUE CSS KLASSEN HINZUFUEGEN IM RTE
#**********************************************
RTE {
   default {
      contentCSS = fileadmin/templates/vdi-templates/css/rte.css
      showTagFreeClasses = 1
   }
}

RTE HTML-Ausgabe

Der RTE formatiert verändert den HTML Code auf verschiedene Weise. Wie er das macht läßt sich beeinflussen. Hier einige nützliche Beispiele:


Restriktive RTE-Konfiguration

1.Schritt: Nur die Inhaltselemente Text und Text mit Bild sollen mit dem RTE bearbeitet werden.

Im PageTS-Config Feld:

RTE.default.disabled=1
RTE.config.tt_content.bodytext.types{
   text.disabled = 0
   textpic.disabled = 0
}

2. Schritt: Nur noch die Standardformatierung und zwei Spezial formatierungen zur Auswahl lassen:
<pre>
RTE.classes{
   highlight{
      name = Highlight
      value = font:bold; color: red;
   }
   zitat{
      name = Zitat
      value=font:italic 15px; margin-left:20px;
   }
}
RTE.default.classesCharacter = highlight, zitat

3.Schritt: Üver das User TSConfig kann man nun einstellen welche Menüoptionen dem User angezeigt werden.

   options.RTEkeyList = class, bold, italic, link

Konfigurationsbeispiele

htmlArea

Mit der Extension htmlarea steht auch für Mozilla basierte Browser ein Editor zur Verfügung der auf dem bekannten HTMLArea basiert.

Viele der RTE Optionen funktionieren auch in htmlarea, darüber hinaus auch noch einige weitere.

Konfigurationsbeispiele htmlarea

Beispielkonfiguration für PageTS mit verschiedenen Möglichkeiten

###########
### RTE ###
###########
# Klassendefinitionen löschen und neue Klassendefinitionen zulassen
RTE.config.tt_content.bodytext.proc.allowedClasses >

# CSS für die Anzeige im Editor selbst #
RTE.default.contentCSS = fileadmin/templates/css/rte.css

# Sichtbare Buttons #

RTE.default{
   # diverse Einstellungen
   keepButtonGroupTogether = 1
   # Buttons (mit Tabelle)
   #showButtons = blockstylelabel, blockstyle, textstylelabel, textstyle, formatblock,left, right, center, bold, italic, subscript, superscript, orderedlist, unorderedlist, outdent, indent, insertcharacter, link, acronym, chMode, removeformat,table, toggleborders, tableproperties, rowproperties, rowinsertabove, rowinsertunder, rowdelete, rowsplit, columninsertbefore, columninsertafter, columndelete, columnsplit, cellproperties, cellinsertbefore, cellinsertafter, celldelete, cellsplit, cellmerge
   # Buttons (ohne Tabellen)
   showButtons = blockstylelabel, blockstyle, textstylelabel, textstyle, formatblock, bold, italic, subscript, superscript, orderedlist, unorderedlist, outdent, indent, insertcharacter, link, chMode, removeformat
   #hideButtons = fontstyle, formatblock, fontsize, strikethrough,lefttoright, righttoleft, textcolor, bgcolor, textindicator, emoticon, user, spellcheck, chMode, inserttag, outdent, indent, justifyfull, subscript, superscript, acronym, copy, cut, paste     
   
   proc{
      # zusätzliche ERLAUBTE TAGS
      #allowTags := addToList(blockquote,center,align)
      #allowedClasses := removeFromList(csc-frame-frame1, csc-frame-frame2) 
      #allowedClasses := addToList(rahmen-blau)
      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
      HTMLparser_rte.tags.align.protect =1
      keepPDIVattribs = align,class,style,id
   }
   # weitere Klassen hinzufügen / verändern
   #classesParagraph := removeFromList(csc-frame-frame1, csc-frame-frame2)
   #classesParagraph := addToList(rahmen-blau)
}


# Definition der Klassen für die Anzeige im Editor
#RTE.classes { 
#   csc-frame-frame1 {
#      name = blauer Rahmen
#      value = font-family:Verdana,Arial,Helvetica,sans-serif;background: #ebeef5;border: 1px dotted #113388;
#   }
#   csc-frame-frame2 {
#      name = gelber Rahmen
#      value = font-family:Verdana,Arial,Helvetica,sans-serif;background: #fcf4e9;border: 1px dotted #f3ae00;
#   }
#} 



Noch ein kleines Beispiel

(Aus seo-24.at)

TCEFORM.tt_content.bodytext.RTEfullScreenWidth = 650

RTE.default {
enableWordClean = 1
removeTrailingBR = 1
removeComments = 1
removeTags = center, sdfield
removeTagsAndContents = style,script

# Buttons die gezeigt/versteckt werden
showButtons = bold, italic, underline, left, center, right, orderedlist, unorderedlist, 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, textcolor, bgcolor
hideButtons = textstyletextstylelabel, blockstyle, blockstylelabel, fontstyle, formatblock, fontsize, strikethrough,lefttoright, righttoleft, textindicator, emoticon, user, spellcheck, chMode, inserttag, outdent, indent, justifyfull, subscript, superscript, acronym, copy, cut, paste, showhelp, about, insertcharacter, line

# Hält die RTE Icons gegroupt zusammen
keepButtonGroupTogether = 1

# blendet Statusbar in htmlarea aus
showStatusBar = 0

}

Eigene Tags verwenden

RTE.default.proc.allowTags = list-of-allowed-tags
RTE.default.proc.HTMLparser_rte.tags.mycustomtag.protect =1

where list-of-allowed-tags is the list of all allowed tags, including your custom tag, and mycustomtag is the name of your tag.

Klasse für Tabellen ändern

«Typo3 always replaces the class I selected in the RTE for a table with the class "contenttable". Do you have an idea how to switch that off?» Assuming that you have installed extension CSS Styled Content (css_styled_content), add the following line in your TS template Setup field:

lib.parseFunc_RTE.externalBlocks.table.stdWrap.HTMLparser.tags.table.fixAttrib.class.list >

The contenttable class will then be added only if no class is specified for the table.

diverses

eigene Klassen

RTE {
    classes {
        Infobox {
            name = Infobox
            value = eigenschaften
        }
    }

    default {
        classesParagraph = Infobox
        contentCSS = fileadmin/templates/version1/css/style.css
        classesCharacter = Infobox
        proc.allowedClasses (
            Infobox, ...
        )
    }
}

Probleme und Lösungen

JavaScript Bug mit htmlarea und Firefox 2.0.0.3

Der Editor lädt nicht in der oben genannten Version von Firefox. Das liegt an einem Filter von htmlarea der dafür sorgen soll das die richtigen Routinen verwendet werden. Dieser erkennt die 0.0.3 Signatur falsch (den User Agent String). Der neue String heißt:

Mozilla/5.0 (Windows; U; Windows NT 5.0; de; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3

das 1.3 verwechselt htmlarea mit dem IE für Mac

Workaround: eine schnelle Lösung ist den Firefox mit einer anderen Signatur auszustatten: Sie können den User Agent String in Firefox direkt ändern. Rufen Sie dazu in der Adresszeile auf:

about:config

Im Anzeigebereich erscheinen die Firefox-Einstellungen. Klicken Sie hier auf die rechte Maustaste um das Kontextmenü zu öffnen und wählen Sie neu - String aus.

Als Einstellungsname tragen Sie:

general.useragent.override

ein. Als Wert tragen Sie beispielsweise ein (am Besten copy&paste):

Mozilla/5.0 (Windows; U; Windows NT 5.0; de; rv:1.8.1.2pre) Gecko/20070111 Firefox/2.0.0.2

Diese Einstellungen sind sofort wirksam (kein Neustart erforderlich). Falls Sie in Typo3 angemeldet waren, müssen Sie sich erneut anmelden.

Um diesen User Agent Sting zu verwenden, wählen Sie ihn bitte aus dem Menü aus:

Extras - User Agent Switcher - Firefox 2.0.0.2

Löschen Sie noch bitte den Cache von Firefox:

Extras - Einstellungen - Erweitert - Netzwerk - Cache - Jetzt löschen

Nun sollte der RTE in Typo3 wieder funktionieren.

htmlarea - Eigene Tags verwenden

In der Standard - Einstellung werden eigene Tags verworfen. So kann man das verhindern:

### Allow Custom Tags ###
RTE.default.proc.allowTags = list-of-allowed-tags
RTE.default.proc.HTMLparser_rte.tags.mycustomtag.protect =1

Wobei list-of-allowed-tags eine Kommaseparierte Liste der erlaubten Tags enthält und mycustomtag den betreffenden neuen Tag schützt.

htmlarea - Bilder lassen sich nicht speichern

Das "Problem" liegt darin dass htmlarea standardmässig so konfiguriert ist:

## REMOVE IMG TAGS
entryHTMLparser_db.tags.img.allowedAttribs = 0
entryHTMLparser_db.tags.img.rmTagIfNoAttrib = 1

Damit werden beim Speichern in typo3 also zuerst alle Attribute aus dem Image-Tag entfernt und schließlich der gesamte Tag auch noch, weil er ja kein Attribut mehr enthält.

Ohne Häcken im Extension-Manager tut es also auch

## SAVE IMG TAGS
entryHTMLparser_db.tags.img.allowedAttribs = alt,class,style,src,title
entryHTMLparser_db.tags.img.rmTagIfNoAttrib = 1

Vor allem das Attribut src ist wichtig ;-)

htmlarea - Fehlermeldung wenn Bilder im Frontend angezeigt werden sollen

Bei Versionen unter Typo3 4.0 eine niedrigere Version von htmlarea verwenden (1.1.3 oder evt. 1.1.6)

Hide Buttons - Show Buttons

showButtons hideButtons list of id-strings Note: In the case of htmlArea RTE, available buttons are: blockstylelabel, blockstyle, textstylelabel, textstyle, fontstyle, fontsize, formatblock, bold, italic, underline, strikethrough, subscript, superscript, lefttoright, righttoleft, left, center, right, justifyfull, orderedlist, unorderedlist, outdent, indent, textcolor, bgcolor, textindicator, emoticon, insertcharacter, line, link, image, table, user, acronym, findreplace, spellcheck, chMode, inserttag, removeformat, copy, cut, paste, undo, redo, showhelp, about, toggleborders, tableproperties, rowproperties, rowinsertabove, rowinsertunder, rowdelete, rowsplit, columninsertbefore, columninsertafter, columndelete, columnsplit, cellproperties, cellinsertbefore, cellinsertafter, celldelete, cellsplit, cellmerge

Note: In the case of htmlArea RTE, if extension sr_static_info is not installed, the spellcheck button is not enabled.

Note:In the case of htmlArea RTE, the following elements will always be shown: undo redo, about.

Note: In the case of htmlArea RTE, buttons user and acronym are never available in the front end.

Note: In the case of htmlArea RTE, button Acronym is not currently available in IE.