phpbar.de logo

Mailinglisten-Archive

[php] Ich kriegs nich gebacken: BaumMenü ohne Tabellen usw...

[php] Ich kriegs nich gebacken: BaumMenü ohne Tabellen usw...

Niels Jäckel niels.jaeckel at silice.de
Die Jun 28 07:37:01 CEST 2005


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