versuch13
Erfahrenes Mitglied
Hallo. Ich möchte gerne ein Array durchlaufen so dass es mir eine Menüstruktur
widergibt. Ich weiß nicht ob das Array dazu vielleicht anders aufgebaut sein müßte.
Das ganze Array zu durchlaufen stellt nicht das Problem dar, sondern das Array
so zu durchlaufen dass es nur den Weg bis zur aktuellen Seite wiedergibt.
So sieht das Array aus, jetzt einfach mal mit ein paar Beispiel Werten:
Die Werte an denen ich dass gerne steuern würde
Befindet man sich nun auf der Seite "Home", sollen also nur die Menüpunkte
angezeigt werden deren Wert pid = 0, das wären also
Home
Über uns
Bis dorthin ist es ja kein Problem, man liest einfach alle Array Elemente mit pid=0 aus.
Befindet man sich auf der Seite "Über uns", sollte dann sichtbar werden.
Also alles wo pid=0 oder pid=2
Home
Über uns
- Das Team
Auf der Seite "Das Team"
alle wo pid=0, pid=2 und pid=3
Home
Über uns
- Das Team
-- Der Hans
Und das wenn möglich bis in unbegrenzte Tiefe auch wenn es nicht benötigt wird,
einfach um es möglich zu machen. Die Daten kommen aus einer MySQL Datenbank,
wenn es notwendig wäre die Daten anders auszulesen, oder bei der Abfrage direkt
in Menüstruktur (ungeordnete Listen) zu bringen wäre das auch möglich. Ich weiß
auch das hier eigentlich nested sets angebracht wären, möchte ich aber wenn
möglich nicht nutzen. Ich hänge auf jeden Fall seit gestern abend daran und komme
einfach nicht weiter.
Am besten fände ich wenn es möglich wäre, sozusagen anhand der variable activePage
das Array so zu durchlaufen dass alle notwendigen Elemente geliefert werden.
Achso, das Ergebnis soll irgendwann mal eine ungeordnete Liste werden um das Menü
darzustellen. Wenn ich jedoch nur ein weiteres Array erhalten würde in dem die notwendigen
Elemente enthalten sind wäre das auch schon ein großer Schritt denke ich.
Vielen Dank im vorraus.
widergibt. Ich weiß nicht ob das Array dazu vielleicht anders aufgebaut sein müßte.
Das ganze Array zu durchlaufen stellt nicht das Problem dar, sondern das Array
so zu durchlaufen dass es nur den Weg bis zur aktuellen Seite wiedergibt.
So sieht das Array aus, jetzt einfach mal mit ein paar Beispiel Werten:
PHP:
$nav[0]['id'] = '0';
$nav[0]['pid'] = '0';
$nav[0]['uri'] = 'home';
$nav[0]['link'] = 'Home';
$nav[0]['id'] = '1';
$nav[0]['pid'] = '0';
$nav[0]['uri'] = 'ueber_uns';
$nav[0]['link'] = 'Über uns';
$nav[0]['id'] = '2';
$nav[0]['pid'] = '1';
$nav[0]['uri'] = 'das_team';
$nav[0]['link'] = 'Das Team';
$nav[0]['id'] = '3';
$nav[0]['pid'] = '2';
$nav[0]['uri'] = 'der_hans';
$nav[0]['link'] = 'Der Hans';
Die Werte an denen ich dass gerne steuern würde
PHP:
$activePage = ';
$uri = ';
Befindet man sich nun auf der Seite "Home", sollen also nur die Menüpunkte
angezeigt werden deren Wert pid = 0, das wären also
Home
Über uns
PHP:
$activePage = 'home';
$uri = 'home';
Bis dorthin ist es ja kein Problem, man liest einfach alle Array Elemente mit pid=0 aus.
Befindet man sich auf der Seite "Über uns", sollte dann sichtbar werden.
Also alles wo pid=0 oder pid=2
Home
Über uns
- Das Team
PHP:
$activePage = 'das_team';
$uri = 'ueber_uns/das_team';
Auf der Seite "Das Team"
alle wo pid=0, pid=2 und pid=3
Home
Über uns
- Das Team
-- Der Hans
PHP:
$activePage = 'der_hans';
$uri = 'ueber_uns/das_team/der_hans';
Und das wenn möglich bis in unbegrenzte Tiefe auch wenn es nicht benötigt wird,
einfach um es möglich zu machen. Die Daten kommen aus einer MySQL Datenbank,
wenn es notwendig wäre die Daten anders auszulesen, oder bei der Abfrage direkt
in Menüstruktur (ungeordnete Listen) zu bringen wäre das auch möglich. Ich weiß
auch das hier eigentlich nested sets angebracht wären, möchte ich aber wenn
möglich nicht nutzen. Ich hänge auf jeden Fall seit gestern abend daran und komme
einfach nicht weiter.
Am besten fände ich wenn es möglich wäre, sozusagen anhand der variable activePage
das Array so zu durchlaufen dass alle notwendigen Elemente geliefert werden.
Achso, das Ergebnis soll irgendwann mal eine ungeordnete Liste werden um das Menü
darzustellen. Wenn ich jedoch nur ein weiteres Array erhalten würde in dem die notwendigen
Elemente enthalten sind wäre das auch schon ein großer Schritt denke ich.
Vielen Dank im vorraus.
Zuletzt bearbeitet: