Hallo zusammen,
kennt jemand 'ne Möglichkeit, bei der Erzeugung des GMENU z.B. via Hook ins Script einzugreifen und ein, über eine eigene Extension in die Tabelle eingefügtes Feld auszuwerten, um Menüpunkte ja nach Inhalt dieses Feldes auszublenden?
Wenn kein Hook, an welcher Stelle müsste ich in den Core rein?
pages.nav_hide reicht mir leider nicht, um Menüpunkte wegzuschalten. Brauche an der Stelle etwas komplexere Auswerte-Regeln in Sprachen und Domains.
Ich hoffe, jemand war schon mal in der Richtung unterwegs und kann mir evtl. ein wenig Sucharbeit in den Sourcen sparen 😉
cooper
Hab dann jetzt mal selber gesucht, und den passenden Hook in der class tslib_menu->filterMenuPages gefunden.
Eigentlich ganz easy:
- eigene Extension anlegen, die Tabelle pages um ein Feld 'excludeDomains' erweitert.
- Hook-Klasse anlegen und in der ext_localconf.php der Extension registrieren:
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/tslib/class.tslib_menu.php']['filterMenuPages'][] = 'EXT:domainmenu/hook/class.tx_domainmenu_hook.php:tx_domainmenu_hook';
- die Hook-Klasse muss das Interface typo3/sysext/cms/tslib/interfaces/interface.tslib_menu_filterMenuPagesHook.php implementieren.
- in der Methode tx_domainmenu_hook->tslib_menu_filterMenuPagesHook dann die excludeDomains mit den country_code-Angaben aus der config abgleichen und ggfls. ein false für den aktuellen Menüpunkt zurück liefern.
Fertig - schon kann man in den Seiteneigenschaften über das Feld 'excludeDomains' via Ländercode Menüpunkte wegblenden, die in bestimmten Ländern nicht angezeigt werden sollen.
Ich muss noch dazu sagen, ich verwalte meine Domains derzeit alle unter einer Baumstruktur, also keinen separaten Tree für jede Domain.
cooper