Problem mit mehrstufiger Navigation mit php

Theryl

Grünschnabel
Hi zusammen ich habe da mal eine hoffentlich ganz einfache Frage...

Und zwar habe ich diese Navigation im Netzt gefunden ich bin auch total begeistert weil es genau das ist was ich gesucht habe aber...

Ich hätte am liebsten eine drei stufige Navigation und keine zwei Stufige Navigation

Im moment sieht das etwa so aus:
Code:
1
1.1
1.2
1.3
2
2.1
2.2
3
...
Ich hätte aber lieber
Code:
1
1.1
1.2
1.2.1
1.2.2
2
...
Ich habe einmal die entsprechende .php Datei gepostet ich haffe mir kann hier geholfen werden.
Ich muss dazu sagen das ich wirklich keine Ahnung vom programmieren habe.
Vielen Dank schon mal im voraus für die Mühe und Hilfe.
Code:
<?php
$siteRoot="index.php?inhalt_mitte=";
$menuStruct = array("Vorwort"=>array("root"=>$siteRoot."content/vorwort.inc.php", "CSS Dateien strukturieren"=>$siteRoot."content/strukturieren.inc.php"),
  "Eigenschaften"=>array("root"=>$siteRoot."content/eigenschaften.inc.php"),
  "Aufgaben"=>array("root"=>$siteRoot."content/aufgaben.inc.php","Formularfelder"=>$siteRoot."content/formularfelder.inc.php","Listen"=>$siteRoot."content/listen.inc.php","Buttons"=>$siteRoot."content/buttons.inc.php")
  );
$aktuell = $_GET["inhalt_mitte"];
$url = $siteRoot.$aktuell;
foreach($menuStruct as $key=>$value)
{
  if($url == $value['root'])
  {
  echo "<a  class=\"fstLevelActive\" href=".$value['root'].">$key</a>\n";
  }
  else
  {
  echo "<a class=\"fstLevel\" href=".$value['root'].">$key</a>\n";
  }
  foreach($value as $key2=>$value2)
  {
  if(array_search($url,$value))
  {
  if($key2 != "root")
  {
  if($url == $value2)
  {
  echo "<a class=\"secLevelActive\" href=".$value2.">$key2</a>\n";
  }
  else
  {
  echo "<a class=\"secLevel\" href=".$value2.">$key2</a>\n";
  }
  }
  }
  }
}
?>
 
Hi,

Rekursion heißt das Stichwort. Hier ein Beispiel:

PHP:
<?php

function getLevelDiscriminator($lvl)
{
    switch ($lvl) {
        case 1:
            return 'fst';
       
        case 2:
            return 'sec';
       
        case 3:
            return 'trd';
       
        case 4:
            return 'fth';
    }
    return 'fst';
}

function generateNavigtion($url, $menuStruct, $lvl = 1, $parent = '')
{
    foreach ($menuStruct as $key => $value) {
        if (is_array($value)) {
            if ($url == $value['root']) {
                printf('<a class="%sLevelActive" href="%s">%s</a>', getLevelDiscriminator($lvl), $value['root'], $key);
                echo "\n";
            } else {
                generateNavigtion($url, $value, $lvl + 1, $key);
            }
        } else {
            $label = $key;
            $lvlDisc = getLevelDiscriminator($lvl);
            if ($label == 'root') {
                $label = $parent;
                $lvlDisc = getLevelDiscriminator($lvl - 1);
            }
            printf('<a class="%sLevel" href="%s">%s</a>', $lvlDisc, $value, $label);
            echo "\n";
        }
    }
}

$siteRoot = "index.php?inhalt_mitte=";
$menuStruct = array(
    "Vorwort" => array(
        "root" => $siteRoot . "content/vorwort.inc.php",
        "CSS Dateien strukturieren" => $siteRoot . "content/strukturieren.inc.php"
    ),
    "Eigenschaften" => array(
        "root" => $siteRoot . "content/eigenschaften.inc.php"
    ),
    "Aufgaben" => array(
        "root" => $siteRoot . "content/aufgaben.inc.php",
        "Formularfelder" => array(
            "root" => $siteRoot . "content/formularfelder.inc.php",
            "Listen" => $siteRoot . "content/listen.inc.php",
            "Buttons" => $siteRoot . "content/buttons.inc.php"
        )
    )
);

$aktuell = isset($_GET["inhalt_mitte"]) ? $_GET["inhalt_mitte"] : '';
$url = $siteRoot . $aktuell;

generateNavigtion($url, $menuStruct);
 
Zurück