Typo3 Snippets  >  Snippets  >  Menu  >  Eigene Variable aus dem PageHeader im Menu verwenden

Eigene Variable aus dem PageHeader im Menu verwenden

Dies ist ein Weg, um ein Farbleitsystem mit vererbten Farben in ein TypoScript-Menu einzubinden:

1) Man schreibt eine kleine Extension, die die Tabelle "pages" um ein Feld "color" erweitert (mit dem Kickstarter).

2) Man fügt dieses neue Feld in das GLOBALS['TSFE']-Array hinzu. Dafür muss man in der Extension die Daten "ext_localconf.php" anpassen (oder anlegen):

$rootlinefields = &$GLOBALS["TYPO3_CONF_VARS"]["FE"]["addRootLineFields"];
if($rootlinefields != '') {
    $rootlinefields .= ' , ';
}
$rootlinefields .= 'color';

Auf dieses Feld kann man ab jetzt (natürlich Cache leeren nicht vergessen) per TypoScript zugreifen. Z.B. um ein Submenu damit aufzubauen:

lib.subMenu = HMENU
lib.subMenu.entryLevel = 1
lib.subMenu.wrap = <ul>|</ul>
lib.subMenu.1 = TMENU
lib.subMenu.1.NO {
  ATagParams.dataWrap = style="border-color: #{field:color}; color: #{field:color};"  
  wrapItemAndSub = <li class="first">|</li>
  linkWrap = <div class="lvl2">|</div>
  ATagTitle.field = title
}
lib.subMenu.2 = TMENU
lib.subMenu.2.wrap = <ul>|</ul>
lib.subMenu.2.expAll = 1
lib.subMenu.2.NO {
  allWrap = <li>|</li>
  stdWrap.dataWrap = <span style="background-color: #{TSFE:rootLine|2|color};">&nbsp;</span>|
  ATagBeforeWrap = 1
  ATagTitle.field = title
}