phpbar.de logo

Mailinglisten-Archive

[php] Site Navigation

[php] Site Navigation

Kristian =?iso-8859-1?Q?K=F6hntopp?= kk_(at)_netuse.de
Tue, 13 Jul 1999 12:22:31 +0200


Marian Steinbach wrote:
> Richtiger Menüzustand heißt natürlich für jeden etwas anderes, für
> mich heißt es minimal folgendes (halte ich übrigens auch für
> diskutabel und ergänzbar):
> - Alle Brüder/Schwestern einer Seite sind zu sehen (d.h. alles auf
> derselben ebene im selben Bereich/Verzeichnis)
> - Die aktuelle Seite taucht auch im Menü auf, ist jedoch nicht
> verlinkt.
> - ggf. ein up-Link zum nächst höheren Verzeichnis
> - und falls nicht identisch mit vorigem ein home-Link zur
> Startseite.

Wenn man eine Semantik haben möchte, die ungefähr dem entspricht,
was ein Filemanager macht, dann braucht man folgende Definitionen,
die fast so sind, wie in Deinem Beispiel:

1. Die Menüs stellen einen Baum dar

        Wurzel
     +---+  + +----+
     |      |      |
     a      b      c
   +-+-+  +-+-+  +-+-+
   | | |  | | |  | | |
  aaabac babbbc cacbcc

2. Zu jedem gegebenen Zeitpunkt kann der angewählte Menüpunkt durch
   einen Pfad identifiziert werden: /, /a, /a/ab oder /c/cc und so weiter.

3. Die Menüdarstellung soll zum aktuellen Pfad passende Auswahl anbieten,
   d.h. für alle Pfadkomponenten werden die Menüpunkte derselben Ebene
   und alle Menüpunkte der Ebene, die der aktuellen Pfadkomponente untergeordnet
   sind angezeigt.

   Beispiele: 
     / (keine Auswahl)
       Es werden alle Komponenten der aktuellen Ebene / angezeigt, also / selbst.
       Es werden alle / unmittelbar untergeordneten Komponenten angezeigt,
       also /a, /b und /c.

     /a
       Komponente / wie oben behandeln und zusätzlich:
       /a -> es werden /a, /b und /c angezeigt,
          -> es werden /a/aa, /a/ab und /a/ac angezeigt.

     /a/ab
       Komponente / wie oben behandeln und
       Komponente /a wie oben behandeln und
       /a/ab -> es werden /a/aa, /a/ab und /a/ac angezeigt,
             -> es werden die /a/ab untergeordneten Komponenten angezeigt.

Wie man sieht, ist dies leicht durch eine rekursive Funktion zu implementieren.


Die Funktion, die die Navigation aufbaut, kann auf der Basis von
$PHP_SELF leicht herausfinden, wie sie selber heißt und in einer
Datenbank von Menüstrukturen die passenden Menüpunkte finden und
aktivieren.

Kristian

-- 
Kristian Köhntopp, NetUSE Kommunikationstechnologie GmbH
Siemenswall, D-24107 Kiel, Germany, +49 431 386 436 00
Using PHP3? See our web development library at
http://phplib.shonline.de/ (GPL)


php::bar PHP Wiki   -   Listenarchive