Zum Inhalt springen

Seiten-ID (page id) vortäuschen

Erstellt am 22. April 2006 · 1 Antwort · letzte Antwort am 23. April 2006

Tags: tt_news, Frage

droptix ·

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.

droptix ·

Hmm, ich komme teilweise weiter, aber ich weiß nicht, wie ich die Variable $GLOBALS['TSFE']->id mittels TypoScript verändern kann. Könnte mir jemand wenigstens dabei einen Tipp geben?

If-Abfragen sind auch nicht so einfach wie mit PHP 😢 Habe zwar hier eine schöne TS-Referenz, aber mein if will nicht wie ich will...

Danke!