Inhalt oder Navi in Marginalspalte über Dropdown in Seiteneigenschaften optional auswählbar machen

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.