Hallo zusammen,

IM RTE finde ich ich zwei Pull-Down-Menüs für Blockstile. Im Typo3-Buch ist der Unterschied jedoch nicht wirklich erklärt:

Name: blockstylelabel
Bedeutung: Label für Combobox Blockstil

Name: Block style
Bedeutung: Combobox Blockstil

Ich habe bereits einen Blockstil hinzugefügt (unterschrift) der für Einleitungen direkt unter Überschriften benutzt wird. Das hat auch funktioniert. Auf die gleiche Art und Weise wollte ich nun zusätzliche Überschriften H1-H6, allerdings mit Horizontallinie einfügen. Hierzu habe ich die Klasse (horzlinie) hinzugefügt. Die Formatierung per CSS erfolgt in der Datei rtetsconfig.css welche in der Datei default.css importiert wurde. Wie gesagt für die Klasse unterschrift funktioniert es aber die zusätzlichen Überschriften erscheinen nicht. Zum testen habe ich nur mal die erste Überschrift (h1) mit Horzline eingefügt. Hier die relevanten Dateien:

mod.SHARED {
defaultLanguageFlag=de.gif
defaultLanguageLabel=Deutsch
}

RTE.classes {
# ACHTUNG: wegen eines Fehlers in Safari _MÜSSEN_ die Klassen in
# konsequenter Kleinschreibung definiert werden!!

# Blockstile

csc-frame-indent {
name = Einzug
value =
}

csc-frame-frame1 {
name = Rahmen einfach
value =
}

align-left {
name = linksbündiger Text
value =
}

align-right {
name = rechtsbündiger Text
value =
}

align-center {
name = zentrierter Text
value =
}

kleinertext {
name = Textblock: kleine Schrift
value =
}

grossertext {
name = Textblock: große Schrift
value =
}

zitatbox {
name = zitatbox
value =
}

unterschrift {
name = unterschrift
value =
}

# Tabellenstile, kann in Tabelleneigenschaften ausgewaehlt werden

contenttable {
name = Mit Rahmen
value =
}

contenttable2 {
name = Mit Linien
value =
}

contenttable3 {
name = Preistabelle
value =
}

layout {
name = unsichtbare Layouttabelle
value =
}

# Textauszeichnungen fuer Texte nicht fuer Absaetze

serifen {
name = Serifenschrift
value = font-family:georgia
}

starkebetonung {
name = Farbe, starker Kontrast
value = color: #aa0000
}

betonung {
name = Farbe, geringer Kontrast
value = color: #1a4c76
}

hellgrau {
name = Hellgrauer Text
value = color: #aaaaaa
}

dunkelgrau {
name = dunkelgrauer Text
value = color:#666666
}

# Absatz-Stile
h1_horzlinie {
name = H1 mit Horzline
value =
}

}


RTE.default {

#defaultLinkTarget =

# zuerst alle Buttons ausschalten
showButtons = *

# Anschließend die Buttons, die erlaubt sind, anzeigen
hideButtons (
lefttoright, righttoleft, formattext, bidioverride, big, citation, definition, insertedtext, italic, keyboard,
monospaced, sample, small, span, strikethrough, variable, user, blockquote, inserttag
)

## selten genutzte Tags in der Absatzpalette verbergen
#hidePStyleItems = pre,address,h5,h6,div

# CSS-Datei für den RTE - einfach die Haupt-CSS-Datei übernehmen
contentCSS=fileadmin/styles/default.css

# Anweisung für Blocksatz wird generell entfernt und ist somit nicht mehr möglich
removeTags = blockquote

# Definiert welche Klassen nach dem Speichern auch in die Datenbank geschrieben werden
# dürfen. Alle anderen werden bereinigt (entfernt) und sin anschließend weg.
proc {
# das ist das Problem - es werden nicht alle anderen Klassen entfernt.
# offenbar wirkt diese Angabe nicht wie gewünscht - verm. ein Bug
# drin sein muss es aber, sonst werden die Klassen nicht im RTE gezeigt.
allowedClasses (
align-left, align-center, align-right, csc-frame-indent, csc-frame-frame1, kleinertext, grossertext,
contenttable, contenttable2, contenttable3, 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, zitatbox, unterschrift, h1_horzlinie
)

# Der HTML-Parser wird aufgerufen der HTML-Auszeichnungen erkennt und in strukturierten Text umwandelt
entryHTMLparser_db = 1
entryHTMLparser_db {

# Definition, welche Klassen und sonst. Attribute erlaubt sind
# Nötig, weil allowedClasses nicht funktioniert.
tags {
p {
# erlaubte Attribute
allowedAttribs = id, title, dir, lang, xml:lang, class

# align und style-Attribute werden entfernt
fixAttrib.align.unset = 1
fixAttrib.style.unset = 1

# erlaubte Klassen, alle anderen werden entfernt
# ACHTUNG: das erste Komma ist wichtig.
fixAttrib.class.list (
, csc-frame-indent,csc-frame-frame1, align-left, align-right, align-center, kleinertext, grossertext, zitatbox, unterschrift, h1_horzlinie
)

# löscht leere Klassen (... class="") was nicht valide zur XHTML-Spezifikation wäre heraus
fixAttrib.class.removeIfFalse = 1
}
# Erlaubten Attribute auf andere Klassen kopieren
div < .p
h1 < .p
h2 < .p
h3 < .p
h4 < .p
h5 < .p
h6 < .p
ul < .p
ol < .p
li < .p
dfn < .p
pre < .p


# Tabellen werden generell erlaubt
preserveTables = 1
table {
# erlaubte Attribute
allowedAttribs = id, title, dir, lang, xml:lang, class, summary

# align und style-Attribute werden entfernt
fixAttrib.align.unset = 1
fixAttrib.style.unset = 1

# erlaubte Klassen, alle anderen werden entfernt
# ACHTUNG: das erste Komma ist wichtig.
fixAttrib.class.list (
, contenttable, contenttable2, contenttable3, layout
)

# löscht leere Klassen
fixAttrib.class.removeIfFalse = 1
}

# Definition der Zellen
td {
# erlaubte Attribute
allowedAttribs = id, title, dir, lang, xml:lang, class

# align und style-Attribute werden entfernt
fixAttrib.align.unset = 1
fixAttrib.style.unset = 1

# erlaubte Klassen, alle anderen werden entfernt
# ACHTUNG: das erste Komma ist wichtig.
fixAttrib.class.list (
, align-left, align-right, align-center
)

# löscht leere Klassen
fixAttrib.class.removeIfFalse = 1
}

# Definition der Zellen wird auf horizontale Linien (hr) und Tabellenheader (th) kopiert
th < .td
hr < .td

# Definition von Bereichen
span {
allowedAttribs = id, title, dir, lang, xml:lang, class
fixAttrib.align.unset = 1
fixAttrib.style.unset = 1
fixAttrib.class.list (
, serifen, starkebetonung, betonung, hellgrau, dunkelgrau,
)
fixAttrib.class.removeIfFalse = 1
}

# Definition von Links
a {
allowedAttribs = id, title, dir, lang, xml:lang, class, href, name
fixAttrib.align.unset = 1
fixAttrib.style.unset = 1
fixAttrib.class.list (
, external-link, external-link-new-window, internal-link, internal-link-new-window,
)
fixAttrib.class.removeIfFalse = 1
}

# b-Tags werden in strong und i-Tags in em umgewandelt
b.remap = strong
i.remap = em
}

# aus hygienischen Gründen werden Tags ohne Attribute entfernt
rmTagIfNoAttrib = span,div,a
}
}

# nur Klassen mit Tags erlauben/verbieten. z. B. : p.klasse {border:1px solid #ccc}
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 (
csc-frame-indent,csc-frame-frame1, kleinertext, grossertext, zitatbox, unterschrift, h1_horzlinie
)

classesCharacter (
serifen, starkebetonung, betonung, hellgrau, dunkelgrau,
)

# Klassendefinition für die gesamte Tabelle
classesTable = contenttable, contenttable2, contenttable3, layout

# Klassendefinition für die einzelnen Zellen
# das kann für tr, thead, tbody ebenfalls gemacht werden
# classesTD = rot1, hellgrau1, dunkelgrau1
# fehlen noch.

# Klassen für die Links
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
}
}

# Mit dem folgenden Abschnitt ist es möglich, unmittelbar beim Einkopieren aus
# der Zwischenablage den Code bereinigen zu lassen, also bereits vor dem Speichern;
# Leider ist es in den Voreinstellungen praktisch unkonfiguriert, deshalb muss man hier
# viel selbst erledigen. Man kann den HTMLParser der WordClean-Funktion bis ins Detail
# konfigurieren.

# Diese Konfiguration unterscheidet sich von RTE.default.proc !
# Es wird hier viel mehr entfernt - über die Zwischenablage können keine korrekten Klassen
# kommen, deshalb werden alle entfernt.

RTE.default.enableWordClean.HTMLparser {
allowTags (
a, abbr, acronym, address, 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, span
)

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
table < .p
thead < .p
tbody < .p
tfoot < .p
th < .p
tr < .p
td < .p
caption < .p
span < .p
ul < .p
ol < .p
li < .p
dfn < .p
hr < .p
strong < .p
em < .p
del < .p
q < .p
code < .p
#blockquote < .p
b < .p
i < .p
sub < .p
sup < .p
hr < .p
pre < .p

a {
# entfernt die Anker aus Word-Dokumenten
# und die Style-Attribute, die Safari sonst in die Links schreibt.
allowedAttribs = id, title, dir, lang, xml:lang, class, href
fixAttrib.style.unset = 1
}
}

# das a ist neu hier, für die Anker aus Word
rmTagIfNoAttrib = span,div,a
removeTags = center, font, o:p, sdfield, strike, u
# das brauchts, weil Safari sonst sogar auf br das style-Atribut setzt
noAttrib = br
}


TCEFORM.tt_content {
# Header ausblenden
header_layout.removeItems = 1,5
# Header mit anderem Namen versehen
header_layout.altLabels.0 = 1. Ebene H1
header_layout.altLabels.2 = 2. Ebene H2
header_layout.altLabels.3 = 3. Ebene H3
header_layout.altLabels.4 = 4. Ebene H4

# Layout mit anderem Namen versehen
layout.altLabels.0 = Standard
layout.altLabels.1 = Layoutvariante 1
layout.altLabels.2 = Layoutvariante 2
layout.altLabels.3 = Layoutvariante 3

# Tabellen-Direktformate ausschalten
table_bgColor.disabled = 1
table_border.disabled = 1
table_cellspacing.disabled = 1
table_cellpadding.disabled = 1

# Diverse weitere Formate ausschalten, Spalten verbieten z. B.
#colPos.disabled = 1

rte_enabled.disabled = 1
}


HTML-Code:
/* Auszeichnungen */
cite, blockquote {
    font-style: italic;
}
  
blockquote {
    margin: 0 0 0.5em 0;
    padding: 0 1.4em 0 1em;
    border-left: 3px solid #1a4c76;
}

strong,b {
    font-weight: bold;
}
  
em,i {
    font-style: italic;
}

pre, code {
    font-family: monospace;
    font-size: 1.1em;
}
  
pre, tt, code {
    font-family: "Courier New", Courier, monospace;
}
      
acronym, abbr {
    letter-spacing: .07em;
    border-bottom: .1em dashed #c00;
    cursor: help;
}

sup, sub {
    font-size: 0.85em;
}
  
sup {
    vertical-align: 20%;
}
  
sub {
    vertical-align: -20%;
}

/* Formatierungen im RTE */
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;
}

p.csc-frame-indent, h1.csc-frame-indent, h2.csc-frame-indent,
h3.csc-frame-indent, h4.csc-frame-indent {
    padding-left: 1.5em;
}
  
p.csc-frame-frame1, h1.csc-frame-frame1, h2.csc-frame-frame1,
h3.csc-frame-frame1, h4.csc-frame-frame1 {
    border: 1px solid #999;
    padding: 0.5em;
    margin: 1em 0;
}

p.kleinertext, div.kleinertext {
    font-size: 0.8em;
    line-height: 1.2em;
}

p.grossertext, div.grossertext {
    font-size: 1.4em;
    line-height: 1.4em;
}


h1.h1_horzlinie {
    display: inline-block;
    width: 100%;
    margin: 0;
    border-bottom: 1px solid #50a0dc;
}


/* Layout für Einleitung unter der Seitenüberschrift */
p.unterschrift, div.unterschrift {
    font-family: Arial, Verdana, Helvetica, sans-serif;
    font-size: 1.3em;
    line-height: 1.3em;
    color: #304c61;
    margin-bottom: 0.6em;
}

div.zitatbox, p.zitatbox {
    border: 1px solid #999999;
    background-color: #cccccc;
    font-style: italic;
}

span.serifen {
    font-family: georgia, times, "times new roman", serif;
    font-size: 1.1em;
}
  
span.starkebetonung {
    color: #aa0000;
}
  
span.betonung {
    color: #1a4c76;
}
  
span.hellgrau {
    color: #aaaaaa;
}
  
span.dunkelgrau {
    color: #666666;
}


/* ----------------------------------------
 *                 Tabellen
 * ----------------------------------------
 */


/* Variante 1 (mit Rahmen) */

table.contenttable {
    border: 1px solid #999;
}

.contenttable thead th {
    text-align: left;
    color: #999999;
    font: normal 14px Arial, Verdana, Helvetica, sans-serif;
    font-weight: bold;
}

.contenttable td {
    border: 1px solid #999;
    padding: 0.3em;
}

.contenttable tr {
    margin: 0;
    padding: 0;
}


/* Variante 2 (mit Linien) */

table.contenttable2 {
    border-top: 1px solid #999;
}

.contenttable2 td {
    border-bottom: 1px solid #999;
    padding: 0.3em;
}

.contenttable2 th {
    background: #efefef;
    border-bottom: 1px solid #999;
    padding: 0.3em;
}


/* Variante 3 (Preistabelle) */

table.contenttable3 {
    border-collapse: collapse;
/*    width: 50em;
    width: 100%;*/
    border-spacing: 0;
    margin: 1em 0;
}


.contenttable3 caption {
    text-align: right;
    font: normal 1em "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
    caption-side: bottom;
}

.contenttable3 th, .contenttable3 td {
    padding: 0.4em 0.4em 0.4em 0.8em;
}

.contenttable3 th {
    color: #116688;
    background-color: #b0c9dc;
    font-family: Arial, Verdana, Helvetica, sans-serif;
    text-transform: uppercase;
    text-align: center;
    font-size: 0.85em;
    letter-spacing: 2px;
    border: 1px solid #bbdddd;
}

.contenttable3 td {
    color: #666677;
    border: 1px solid #bbdddd;
}



/* Hover-Effekt für Zeile unter dem Cursor */
.contenttable3 tr:hover {
    background-color: #eeffcc;
}



.tr-odd td {
    background: #edf5ff;
}

.contenttable3 .tr-even td {
    background: #eeeeee;
}

.contenttable3 .tr-last td {
    border-bottom: 1px solid #999;
}

thead th {
    text-align: left;
    color: #007d7d;
    font: normal 14px Arial, Verdana, Helvetica, sans-serif;
    font-weight: bold;
}


/* Variante 4 (unsichtbare Layouttabelle) */

table.layout {
    border:none;margin: 0;
    border-spacing: 0;
    border-collapse: collapse;
    font-size: 1.2em;
}

table.layout th, table.layout td {
    padding: 0.1em;
    vertical-align: top;
}

/*
table.layout td.align-right {
    padding: 0px;
    border: solid 1px red;
    
}
*/

table.layout caption {
    display: none;
}

/* -------------- Tabellen -------------- */


/* ----------------------------------------
 *                 Rahmen
 * ----------------------------------------
 */

.csc-frame-invisible {
    display: none;
}

.csc-frame-indent {
    padding-left: 1.5em;
}

.csc-frame-indent3366 {
    padding-left: 33%;
}

.csc-frame-indent6633 {
    padding-right: 33%;
}

.csc-frame-frame1 {
    border: 1px solid #666;
    padding: 0.5em;
    margin: 1em 0;
    overflow: hidden;
}

/* --------------- Rahmen --------------- */

.internal-link {
    text-decoration: underline;
    color: #666;
    padding: 0;
    margin: 0px;
}
Hate jemand einen Tip für mich?

Viele Grüße
pixel