Der CUR Zustand (aktiver Menüpunkt) richtet sich nach der Seiten-ID. Ich möchte unter bestimmten Voraussetzungen kurzzeitig die Seiten-ID ändern, um dem Menü eine andere vorzutäuschen. Ich weiß aber nicht, wie das Menü auf die Seiten-ID zugreift und kann meine Idee daher nur als PHP-Script liefern. Könnte mir das jemand in TS übersetzen?
Dazu erstmal die drei PHP-Schnipsel:
[php1]
// check if news id and back pid are given
if ($_GET['tx_ttnews[tt_news]'] and $_GET['tx_ttnews[backPid]']) {
// remind current pid
$realPid = $GLOBALS['TSFE']->id;
} else {
// TYPO3 is not showing news
$realPid = false;
}
[php2]
// fake current pid for the menu
if ($realPid) {
$GLOBALS['TSFE']->id = $_GET['tx_ttnews[backPid]'];
}
[php3]
// rebuild real pid
if ($realPid) {
$GLOBALS['TSFE']->id = $realPid;
}
Und im 'default PAGE object' müssten die dann wie folgt rein:
page = PAGE
page {
typeNum = 0
stylesheet = fileadmin/template/default/css/default.css
1 = TEMPLATE
1 {
template = FILE
template.file = fileadmin/template/default/template.html
workOnSubpart = DOCUMENT_BODY
[php1]
[php2]
marks {
CONTENT < styles.content.get
MENU = HMENU
MENU {
wrap = <div id="menu">|</div>
1 = TMENU
1 {
NO = 1
CUR = 1
CUR {
ATagParams = class="sel"
}
}
2 < .1
2 {
wrap = <div id="submenu">|</div>
}
}
}
[php3]
}
}
Also zuerst ermittle ich, ob ich denn gerade News anzeige und ob's eine backPid (für "Zurück") gibt. Wenn ja, dann speichere ich die echt Seiten-ID in einer Variable. Ansonsten setze ich sie auf 'false', damit im folgenden nichts weiter passiert. Bevor das Menü erstellt wird, verändere ich die Seiten-ID und danach stelle ich sie wieder her, falls noch weitere Extensions oder TS drauf zugreifen wollen.