Jan 26

Da ich während der Arbeit schon mehrmals auf das Problem gestoßen bin, würde ich es gerne hier skizzieren, damit sich jemand anders die Arbeit vielleicht nicht mehr machen muss. Das Problem ist folgendes: In einem TYPO3-Plugin soll die Seiten-ID ermittelt werden um sie weiterzuverwenden, zum Beispiel um Records eines bestimmten Typs aus der Datenbank zu laden die an dieser Seite hängen.

Unsaubererweise gibt es global verfügbare Variablen im TYPO3-Pluginkonstrukt, die diese Information enthalten. So kann über $GLOBALS[‚TSFE‘]->id die ID der aktuell AUFGERUFENEN Seite ermittelt werden. Das funktioniert so lange, bis es einen Unterschied macht, welche Seite aufgerufen und welche angezeigt wird. Es gibt zum Beispiel die Möglichkeit der internen Links (Shortcuts) oder auch die der Mountpoints (Seiteninhalt einer anderen Seite anzeigen). Kommt man auf so eine Seite, dann funktioniert die Methode von vorhin nicht, denn die Inhalte die angezeigt werden, liegen nicht auf der Seite die aufgerufen wurde. Dieses Manko lässt sich nun dadurch beheben, dass man einfach die Seiten-ID der Inhaltselemente abfragt: $this->cObj->data[‚pid‘] Das Array „data“ enthält alle Felder aus der Tabelle tt_content und damit auch die ID der Seite zu der das Element gehört.

Vielleicht ist das ja hilfreich wenn jemand sich mal fragt, warum diese IDs verschieden sind…

Eine Antwort zu “TYPO3 Seiten-ID ermitteln”

  1. Thomas sagt:

    Vielen Dank für den hilfreichen Typo-3-Tipp, habe lange genau danach gesucht!

Einen Kommentar schreiben