Malcolm Beck´s: Array in Array und Submenu mit "unendlicher" verschachtelung

Beitrag lesen

hi,

vorneweg, vielen Dank! Du hast mich vor dem totalen Absturz gerettet :)
Ich war schon drauf und dran, die Navigation aufzugeben, ich hatte schon Albträume.

Den HTML-Code erzeugen Dir Nested Sets natürlich nicht. Aber Du kannst die Datenbank schon so abfragen, daß Du nur die Navigationseinträge bekommst, die Du tatsächlich anzeigen willst. Vielleicht schaust Du's Dir doch nochmal an. ;)

Ja, lernen muss/will ich es definitiv, ich möchte irgendwann mein CMS auch wirklich als vollständiges CMS laufen lassen, und nicht so halbe sachen wie jetzt :)
Aber vorerst reicht mir so eine rekursive Lösung.

Wenn die Seitenstruktur letztendlich eh komplett in der Datenbank stehen » soll, ist es etwas umständlich, aus den abgefragten Daten (und das sind immer *alle* Navigationseinträge) Deine verschachtelte Arraystruktur zu bauen und erst dann abzugrasen, was davon Du wirklich benötigst.

Das ist wohl Wahr, ich hatte mir dass viel zu einfach vorgestellt, ein "normales" array, also nur eine Ebene, ist kein Problem, aber ein so tief verschachteltes krieg ich irgendwie nicht hin.
Ist aber auch nicht so schlimm, jetzt trage ich neue Links gerne ins array :)
Meine derzeit auf dem Server laufende Navigation ist allein in der Hauptfunktion 240 Zeilen lang und Katastrophal, von neuen Rubriken/Themen einfügen will ich erst garnicht anfangen.
Ich weiss garnicht, wie oft ich abfrage, ob bestimmte array_keys existieren, um überhaupt auf der Seite etwas anzuzeigen (6 oder 7 mal).

Ich hab hier eine Funktion geschrieben, die aus einem solchen beliebig tief verschachtelten Array die Navigations erstellt. Der Pfad der aktuellen Seite kommt aus $_SERVER["REQUEST_URI"].

Darf ich fragen, wie lang du dafür gebraucht hast? Ich versuche es schon seit Wochen ohne Erfolg.

Das Teil ist an manchen Stellen noch verbesserungsbedürftig (u. a. kontextabhängiges Escapen!) und kann auch eleganter geschrieben werden, aber zur Veranschaulichung des Grundprinzips sollte es reichen.

Ja, das habe ich gemerkt :) Ich brauchte einderthalb Stunden, um rauszukriegen, wie ich der Liste _eine_ id und die Childs in ein <ul> bekomme, habe es hinbekommen :)

Aber mit dem Escapen, da blick ich nicht durch, wo muss escaped werden?
Es findet ja so keine Ein- oder Ausgabe statt.

Jedenfalls vielen vielen Dank, jetzt kann ich mich endlich wieder auf _irgendwas_ konzentrieren :)

mfg