Hallo alle,
ich möchte, dass die Überschrift das jeweils ersten Inhaltselements einer Seite als H1-Tag dargestellt wird. Alle Überschriften der folgenden Inhaltslemente derselben Seite sollen dann als H2-Tag dargestellt werden.
Im Moment werden alle als H2 dargestellt.
Wie stelle ich das an?
Danke für Eure Hilfe & Gruß von
Thomas
Sieht aber nach keiner schönen Lösung aus. Damit gehen ja alle Einstellungen aus CSS Styled Content verloren, lib.stdheader etc. ...
Nimm lieber das hier:
lib.stdheader.10.2{
override.cObject=TEXT
override.cObject{
current=1
insertData=1
fontTag=<h1{register:headerStyle}{register:headerClass}>|</h1>
if.value=1
if.equals.data = cObj:parentRecordNumber
}
}
Als Standard-Header legst Du im Constant-Editor H2 fest,
oder Du schreibst direkt in den Konstanten:
content.defaultHeaderType = 2
Damit werden alle Überschriften als H2 gerendert, die erste als H1, und sonst ändert sich nix.
Da stimm ich Dir zu, Deine Variante sieht für den speziellen Fall auf alle Fälle eleganter aus.
Bei typo3wizard ist das "schmutziger", dafür aber sehr allgemein gültig. Mit deren Schnipsel ließe sich z.B. das 1. CE auch im Template ganz woanders hinplatzieren odgl. - zumindest liefert es dazu den Ansatz.
Hallo,
Danke für beide Antworten!
Mit der ersten Lösung hatte ich auch starke Bedenken aber die zweite ist wirklich klasse, besten Dank für alle Tipps.
Grüße von
Thomas
Hm, klappt fast 1a.
Ich dann nur immer überhalb der ersten Überschrift (also der H1) noch einen leeren H2-Tag. Ihr nicht?
Huaba
Hallo Huaba,
bei mir sieht das inzwischen so aus:
temp.stdheader < lib.stdheader
lib.stdheader >
temp.stdheader = COA
temp.stdheader {
10=TEXT
10 {
field=header
wrap=<h1>|</h1>
if.value=1
if.equals.data = cObj:parentRecordNumber
required=1
}
20<.10
20.if.negate = 1
20.wrap=<h2>|</h2>
}
lib.stdheader < temp.stdheader
Grüße von
Thomas
So, da ich eh eine Lösung brauchte, in der zusätzlich auch noch die Spalte beachtet wird, hier nun meine Lösung:
lib.stdheader.10.2 >
# Headline styling depends on colPos
lib.stdheader.10.2 = CASE
lib.stdheader.10.2 {
key.field = colPos
insertData = 1
# headlines for main
0 = CASE
0 {
insertData = 1
key.data = cObj:parentRecordNumber
# styling vor all headlines
default = TEXT
default {
current = 1
dataWrap = <h2{register:headerStyle}{register:headerClass}>|</h2>
}
# styling only for the first headline
1 = TEXT
1 {
current = 1
dataWrap = <h1{register:headerStyle}{register:headerClass}>|</h1>
}
}
#headlines for right
2 = CASE
2 {
insertData = 1
key.data = cObj:parentRecordNumber
# styling vor all headlines
default = TEXT
default {
current = 1
dataWrap = <h5{register:headerStyle}{register:headerClass}>|</h5>
}
# styling only for the first headline
1 = TEXT
1 {
current = 1
dataWrap = <h4{register:headerStyle}{register:headerClass}>|</h4>
}
}
}
Huaba
Und mit diesem TS klappte das ganze sogar noch mit gridelements:
lib.stdheader.10.2 >
# Headline styling depends on colPos
lib.stdheader.10.2 = CASE
lib.stdheader.10.2 {
insertData = 1
key.field = colPos
# default settings for all colPos
default = CASE
default {
insertData = 1
key.data = cObj:parentRecordNumber
# styling vor all headlines
default = CASE
default {
insertData = 1
key.field = tx_gridelements_columns
# styling for headlines in all normal columns
default = TEXT
default {
current = 1
dataWrap = <h2{register:headerStyle}{register:headerClass}>|</h2>
}
### styling for headlines in gridelements
# headlines for gridelement box left (ID of gridelement column)
100 = TEXT
100 {
current = 1
dataWrap = <h4{register:headerStyle}{register:headerClass}>|</h4>
}
#headlines for gridelement box right (ID of gridelement column)
101 < .100
}
# styling only for the first headline in normal columns
1 = TEXT
1 {
current = 1
dataWrap = <h1{register:headerStyle}{register:headerClass}>|</h1>
}
}
# headlines for main (colPos 0)
0 = CASE
0 {
insertData = 1
key.data = cObj:parentRecordNumber
# styling vor all headlines
default = TEXT
default {
current = 1
dataWrap = <h2{register:headerStyle}{register:headerClass}>|</h2>
}
# styling only for the first headline
1 = TEXT
1 {
current = 1
dataWrap = <h1{register:headerStyle}{register:headerClass}>|</h1>
}
}
#headlines for right (colPos 2)
2 = CASE
2 {
insertData = 1
key.data = cObj:parentRecordNumber
# styling vor all headlines
default = TEXT
default {
current = 1
dataWrap = <h5{register:headerStyle}{register:headerClass}>|</h5>
}
# styling only for the first headline
1 = TEXT
1 {
current = 1
dataWrap = <h4{register:headerStyle}{register:headerClass}>|</h4>
}
}
}
Das funktioniert im Prinzip super, aber es überschreibt leider das Header-Layout, auch wenn dort explizit ein anderer Wert als "Standard" zugewiesen wurde. Kann man es so ergänzen, dass die Automatik nur bei "Standard" dann läuft?