phpbar.de logo

Mailinglisten-Archive

[php] Menustruktur

[php] Menustruktur

Axel Tietje a.tietje_(at)_flynet.de
Sun, 27 Jun 1999 16:45:27 +0200


Hallo zusammen!

Ich habe aktuell auch das Problem, eine solche Struktur programmieren
zu müssen. Die Hauptprobleme sind:

1. Ich muß alles aus einer Datenbank heraus generieren, kann also
keine Vorgaben in einer inc-Datei machen oder so

2. Menüeinträge sind theoretisch unendlich tief.

Mein Lösungsansatz ist, jedem Menüpunkt eine Numerierung in der Form

$menu[1] = "1";
$menu[2] = "1.1";
$menu[3] = "1.2";
$menu[4] = "1.2.1";
$menu[5] = "1.2.2";
$menu[6] = "1.3";
$menu[7] = "1.3.1";

u.s.w zuzuordnen. Dann müßte man (da probiere ich gerade rum) diese
Strings splitten mit explode (".", $menu[$x]) und anschließend
sozusagen vertikal sortieren. Wieviele Ebenen (in der Tiefe) es gibt,
ist ja klar, wenn man mit count() prüft, welches Array die größte
Länge hat. Dadurch kann man auch feststellen, wie tief ein solches
Menüelement "eingerückt" sein muß.

Wenn ein neuer Unterpunkt dazukommt, weiß man, welches der Überpunkt
ist, kann prüfen, wieviele Unterpunkte es gibt, eins addieren und hat
dann den Wert für die Variable $menu[n+1].

Problematisch wird es, weil es auch einen Menüeintrag wie z. B.
"1.1.10" geben kann, der natürlich nach "1.1.9" kommt, sonst könnte
man ja gleich mit sort() arbeiten.

Ich habe allerdings noch keine konkrete Idee, wie dieser
Sortieralgorithmus aussehen muß. Wenn jemand eine Idee hat, würde ich
mich über Anregungen freuen. Das ganze ist für ein
Dokumentmanagementsystem, das - wenn es mal fertig ist - auch als open
source zur Verfügung stehen soll.

Über Antworten würde ich mich freuen.

BTW: Wenn ich beim Posten irgend etwas falsch mache, dann sagt es mir
bitte. Auf meine letzten Postings kam leider keine Reaktion.

Bis dann, Axel.
--
a.tietje_(at)_flynet.de



php::bar PHP Wiki   -   Listenarchive