Hallo Leute,
vielleicht kann mir jemand helfen bei meinem kleinen Problem?
Ich benutze in typo3 das backen_layout und setze die Auswahl in eine Klasse in den body tag.
Das mache ich mit folgendem typoscript:
temp.selectbodytag = CASE
temp.selectbodytag {
# The value of the CASE object will depend on the value of the layout field in the page records
key.field = backend_layout
key.ifEmpty.data = levelfield:-2, backend_layout_next_level, slide
default = TEXT
default.value = layout1
1 = TEXT
1.value = layout1
2 = TEXT
2.value = layout2
stdWrap.wrap = <body class ="|">
}
page = PAGE
page {
bodyTagCObject < temp.selectbodytag
}
Das erzeugt dann folgende Ausgabe
<body class ="layout2">
Nun möchte ich aber zusätzlich noch den Wert vom frontend layout in die Klasse setzen
temp.selectbodytag2 = CASE
temp.selectbodytag2 {
# The value of the CASE object will depend on the value of the layout field in the page records
key.field = layout
default = TEXT
default.value = nosubmenu
1 = TEXT
1.value = nosubmenu
2 = TEXT
2.value = submenu
stdWrap.wrap = <body class ="|">
}
Am Ende sollte es z.B. so aussehen:
<body class ="layout2 nosubmenu">
Hat vielleicht einer einen Tipp oder Vorschlag, wie man die zwei Objekte miteinander verbinden kann?
Hallo.
bodyTagCObject ist ein cObject, d.h. Du kannst hier auch ein COA wählen. Dann als je ein Objekt des Arrays die beiden CASE-Objekte einbinden (Leerzeichen für dan Abstand zwischen den Klassen nicht vergessen), und dann via wrap des COA-Objektes das Tag außenrum basteln.
Viele Grüße
Julian
Julian.Hofmann schrieb
Hallo.
bodyTagCObject ist ein cObject, d.h. Du kannst hier auch ein COA wählen. Dann als je ein Objekt des Arrays die beiden CASE-Objekte einbinden (Leerzeichen für dan Abstand zwischen den Klassen nicht vergessen), und dann via wrap des COA-Objektes das Tag außenrum basteln.
Viele Grüße
Julian
Danke schon mal für den Tipp,
habe nun folgendes gemacht:
bodyTagCObject = COA
bodyTagCObject.wrap = <body class="|">
bodyTagCObject.10 = TEXT
bodyTagCObject.10 < temp.selectbodytag
bodyTagCObject.20 = TEXT
bodyTagCObject.20.value =
bodyTagCObject.30 = TEXT
bodyTagCObject.30 < temp.selectbodytag2
Leider bekomme ich es nicht hin ein Leerzeichen zwischen die beiden Klassen zubekommen.
Hab es gerade doch noch geschafft ein Leerzeich einzusetzen.
Hier nun die Lösung:
temp.selectbodytag = CASE
temp.selectbodytag {
key.field = backend_layout
key.ifEmpty.data = levelfield:-2, backend_layout_next_level, slide
default = TEXT
default.value = layout1
1 = TEXT
1.value = layout1
2 = TEXT
2.value = layout2
stdWrap.noTrimWrap = || |
}
temp.selectbodytag2 = CASE
temp.selectbodytag2 {
key.field = layout
default = TEXT
default.value = nosubmenu
1 = TEXT
1.value = nosubmenu
2 = TEXT
2.value = submenu
stdWrap.wrap = |
}
page = PAGE
page {
...
bodyTagCObject = COA
bodyTagCObject.wrap = <body class="|">
bodyTagCObject.10 = TEXT
bodyTagCObject.10 < temp.selectbodytag
bodyTagCObject.30 = TEXT
bodyTagCObject.30 < temp.selectbodytag2
...
}
Prima.
Zwei Kleinigkeiten noch:
1. bodyTagCObject.10 = TEXT kannst Du Dir sparen, da Du durch das Kopieren von temp.selectbodytag auf bodyTagCObject.10 da eh überschreibst. Nach dem Kopieren sähe Dein TS wie folgt aus:
bodyTagCObject.10 = TEXT
bodyTagCObject.10 = CASE
bodyTagCObject.10 {
key.field = backend_layout
key.ifEmpty.data = levelfield:-2, backend_layout_next_level, slide
default = TEXT
default.value = layout1
1 = TEXT
1.value = layout1
2 = TEXT
2.value = layout2
stdWrap.noTrimWrap = || |
}
2. Thema bitte noch auf "gelöst" stellen :-)