Zum Inhalt springen

link zur übergeordneten Seite in Extension

Erstellt am 22. September 2008 · 6 Antworten · letzte Antwort am 22. September 2008

Tags: Links, Frage

david_bru ·

Hallo liebes Forum,

ich habe ein scheinbar simples Problem, auf dass ich die Lösung einfach nicht finden will..

_root
--Rezepte
----Apfelstrudel
------GalerieAS
----Birnenkuchen
------GalerieBK
----Zwetschkenkompott
------GalerieZK

Auf den Galerieseiten ist neben der GalerieExtension noch eine weitere kleine Extension eingebaut.

Diese soll immer auf die nächsthöhere Seite verlinken.

Bsp:
Seite GalerieAS soll auf Apfelstrudel verlinken
Seite GalerieBK soll auf Birnenkuchen verlinken usw.

Ich hätte bereits eine Lösung mittels TS gefunden, aber diese Lösung scheint mir unpraktisch zu sein, da die Anzahl der Rezepte ständig erweitert wird und ich die Conditions nicht jedesmal nachbessern kann.

Fällt euch was ein?
Gruß
David

just2b ·

Mit

$rootLineArray = $GLOBALS['TSFE']->sys_page->getRootLine($pageid);

bekommst du die $rootLine und dann kannst du mit typolink oder noch schneller mit $this->pi_linkToPage() den link generieren

georg

david_bru ·

Danke just2b für deine schnelle Antwort, aber irgendwie weiß ich nicht wirklich wie ich deinen Lösungsansatz einbauen soll.

Habe es in der Zwischenzeit aber mit einer SQL-Abfrage geschafft. Ist zwar nicht elegant, aber für meine Zwecke reichts.

Danke nochmals
David

just2b ·

Hallo,

lass dir doch einfach mal $rootline ausgeben! dann bekommst du die gleiche ID wie auch in der sql-abfrage, wo du vermutlich die $pid ermittelst wo uid=$GLOBALS['TSFE']->id ...

ergebnis ist das gleiche, nur dass du eine query mehr hast, denn $GLOBALS hast du sowieso zur Verfügung

georg

david_bru ·

Hallo,

ich hab mir zu Debug-Zwecken folgende Variablen ausgeben lassen und alle hatten ein leeres Feld als Ergebnis..

$rootLineArray
$rootLineArray['uid']
$rootLineArray['pid']
$rootLineArray['title']
$rootLineArray[0]['uid']
$rootLineArray[0]['pid']
$rootLineArray[0]['title']

Aber jetzt hab ich es anstatt wie von dir vorgeschlagen:

$rootLineArray = $GLOBALS['TSFE']->sys_page->getRootLine($pageid);

nochmals folgenderweise probiert

$rootLineArray = $GLOBALS['TSFE']->sys_page->getRootLine($GLOBALS["TSFE"]->id);

und siehe da er spuckt mir etwas aus:
$rootLineArray[0]['uid'] = 1
$rootLineArray[0]['pid'] = 0
$rootLineArray[0]['title'] = _root

und nachdem ich jetzt noch den [0] durch [2] ersetzt habe kommt auch noch die richtige Ebene raus.

Danke nochmals just2b für deine Hilfe - der Code ist jetzt um einiges kürzer geworden 🙂

Gruß
David