Aufgabe: Die Navigation (oder jeder beliebige andere Inhalt) soll in einem TemplaVoila-Layout nur dann angezeigt werden, wenn man in den Seiteneigenschaften bei einem Dropdown „Anzeigen“ gewählt hat. Dabei soll die Einstellung auf Unterseiten vererbt werden.
1. TemplaVoila: Auswahlliste erstellen
Im TemplaVoila wird für das Seitentemplate ein Dropdown bereitgestellt. Als Variablen-Name (fieldname) wurde „field_nav_marginal“ gewählt. Im Dropdown unter den Seiteneigenschaften einer Seite kann zwischen drei Optionen gewählt werden.
select
Von übergeordneter Seite übernehmen
Nicht anzeigen
-1
Anzeigen
1
2. Im TypoScript Setup der Webseite: Navigation erstellen
Weil wir die Navigation später per override verschwinden lassen wollen, schieben wir das HMENU in den stdWrap.wrap eines TEXT-Objektes. Ich habe keine andere Möglichkeit gefunden, ein Object später per override mit einem leeren String zu überschreiben – aber vielleicht hat jemand ja eine bessere Lösung 🙂
lib.nav_sub = TEXT
lib.nav_sub.stdWrap.wrap.cObject = HMENU
lib.nav_sub.stdWrap.wrap.cObject {
entryLevel = 2
special.value = 564
1 = TMENU
...
}
3. Im TypoScript Setup das override machen
Für das override verwenden wir die Extension kb_tvcontslide.
lib.nav_sub {
stdWrap.wrap.override.cObject = TEXT
stdWrap.wrap.override.cObject {
value = |
if.isPositive.cObject = TEXT
if.isPositive.cObject {
postUserFunc = tx_kbtvcontslide_pi1->main
postUserFunc.field = field_nav_marginal
}
if.negate = 1
}
}
Für Suchmaschinen: Inhalt der Marginspalte optional anzeigen lassen, per Auswahlliste wählen, ob Inhalt in TemplaVoila angezeigt werden soll. Inhalt anzeigen, verbergen, von übergeordnete Seite übernehmen – in Seiteneigenschaften auswählbar machen.