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