Mailinglisten-Archive |
Hallo Michael, > Sollte wer Typo3 kennen ;) weis er was ich meine und zwar das sog. > TMENU/HMENU. Jedoch bekommen ich das aus dem wirrwar an code nich raus. > > Die Rohdaten habe ich mit ID , Parent_ID, Level, usw... ich würde die Sache neu implementieren. Ich werde dir hierzu mal eine Idee vorstellen: du hast die Rohdaten in einem assoziativen Array ID0 => 0 => Title 1 => Level 2 => Parent_ID ID1 => ... ID2 => ... Diese Daten sollten konsistent sein (alle Parent_IDs müssen vorhanden sein etc.) Wenn ein Menüknoten die Parent_ID = "-1" hat, ist er auf oberster Ebene. (Level=0) Du definierst einen Funktion "getPathToRoot", die dir von einem bestimmten Knoten über dessen ID den "Pfad" von IDs zu dem übergeordneten Wurzelknoten raussucht. Dabei "hangelt" sie sich (z.B. rekursiv) immer von Parent_ID zum übergeordneten Knoten und verfährt mit diesem genauso, bis sie auf einen Knoten mit Level 0 stößt. Die Ausgabe ist ein normales Array mit den IDs als Werten. Nun zur Vereinfachung etwas Pseudo-PHP-code. Das Array $arrResult beinhaltet am Ende die relevanten Knoten, die dargestellt werden sollen, in $sActiveID liegt die ID des aktiven Knotens. $arrPath = getPathToRoot($sActiveID); $arrResult = array(); für alle Knoten die verfügbar sind { wenn Knoten hat Level 0 oder ist in $arrPath dann { hinzufügen zu Array $arrResult } } Das Ergebnisarray sind dann alle Knoten, die entweder Level 0 haben, oder auf dem Pfad von einer Wurzel zum aktiven Knoten liegen. vielleicht hilfts dir ja Niels
php::bar PHP Wiki - Listenarchive