Felix Riesterer: Dynamisches Menü mit PHP

Beitrag lesen

Lieber Jürgen,

$ary_nav = array(

array("home", "index.php", 0),
        array("Punkt", "punkt.php", 0),
  array("punkt1", "unter1.php", 1),
  array("punkt2", "unter2.php", 1),
        array("Kontakt", "kontakt.php", 0),
          array("Mail", "kunter1.php", 1),
  array("Adresse", "kunter2.php", 1)
        );

  
Dein Array versucht eine verschachtelte Navigation abzubilden. Dabei gibt es im Prinzip eine Art Baumstruktur, in der die Links enthalten sein sollen.  
  
Navi  
 | - Home  
 | - Punkt  
 |    | - Punkt1  
 |    | - Punkt2  
 | -Kontakt  
 |    | - Mail  
 |    | - Adresse  
  
Ist es nicht so? Und warum bildet dann Dein Array diese Struktur nicht genau so ab?  
  
~~~php
$ary_nav = array(  
    "Home" => array(  
        "link" => "index.php"  
    ),  
  
    "Punkt" => array(  
        "link" => "punkt.php",  
        "weitere" => array(  
            "Punkt1" => array(  
                "link" => "unter1.php"  
            ),  
  
            "Punkt2" => array(  
                "link" => "unter2.php"  
            )  
        )  
    ),  
  
    "Kontakt" => array(  
        "link" => "kontakt.php",  
        "weitere" => array(  
            "Mail" => array(  
                "link" => "kunter1.php"  
            )  
  
            "Adresse" => array(  
                "link" =>"kunter2.php"  
            )  
        )  
    )  
);

Ich habe jeden Link in Deiner Navi als ein Array definiert, welches bis zu zwei Indices haben kann:

1.) "link" mit der URL des Links, und eventuell
2.) "weitere", in dem ein Array mit möglichen anderen Link-Arrays steckt, die ihrerseits wiederum ebenso aufgebaut sind (also auch "link" und "weitere" haben können).

Was Du nun zum Auswerten dieses Arrays benötigst, ist eine (rekursive?) Funktion, die Dir diese verschachtelte Struktur in ein sinnvolles HTML-Konstrukt umwandelt. Und was das vermeintliche "div" angeht, schaue lieber nocheinmal hier herein: <http://de.selfhtml.org/css/layouts/navigationsleisten.htm@title=CSS-basierte Navigationsleisten>

Liebe Grüße,

Felix Riesterer.

--
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)