Seite 1 von 1

menüscript für benutzung von parametern modifizieren

Verfasst: 13.04.2006 14:10
von asomy
hallo,
ich habe im internet ein menüscript gefunden und es mir in die HP eingebaut. dies ist die dynmenu2.php

Code: Alles auswählen

<?
$siteRoot= substr_replace ($_SERVER["PHP_SELF"], "",strrpos ($_SERVER["PHP_SELF"], "/")+1);

$menuStruct=array(

"Home"=>array("root"=>$siteRoot."home.php")
,"Die Gesellschaft"=>array("root"=>$siteRoot."gesell.php?do=show", "Kooperationen"=>$siteRoot."gesell_koop.php")
,"Das Büro"=>array("root"=>$siteRoot."office.php", "Standort"=>$siteRoot."office_ort.php", "Räumlichkeiten"=>$siteRoot."office_building.php")
,"Leistungen"=>array("root"=>$siteRoot."product.php")
,"Projekte"=>array("root"=>$siteRoot."projekte.php", "Hoch-/Ingenieurbau"=>$siteRoot."projekte_hoch.php", "Straßenbau"=>$siteRoot."projekte_str.php", "Entwässerung"=>$siteRoot."projekte_entw.php", "Umweltschutz"=>$siteRoot."projekte_umwelt.php", "Bauüberwachung"=>$siteRoot."projekte_kontrolle.php")
,"Ausbildung"=>array("root"=>$siteRoot."azubi.php")
,"Kontakte"=>array("root"=>$siteRoot."kontakt.php")
,"Aktuelles"=>array("root"=>$siteRoot."aktuell.php", "Archiv"=>$siteRoot."aktuell_archiv.php")

);

if($_SERVER["PHP_SELF"] == $menuStruct['Home']['root']){
  foreach($menuStruct as $key=>$value){
    if($_SERVER["PHP_SELF"] == $value['root']){
       echo "<div class=\"fstLevelActive\"><a href=".$value['root'].">$key</a></div>\n";
    }
    else{
       echo "<div class=\"fstLevel\"><a href=".$value['root'].">$key</a></div>\n";
    }
  }
} else {
  foreach($menuStruct as $key=>$value){
    if($_SERVER["PHP_SELF"] == $value['root']){
       echo "<div class=\"fstLevelActive\"><a href=".$value['root'].">$key</a></div>\n";
    }else{
       echo "<div class=\"fstLevel\"><a href=".$value['root'].">$key</a></div>\n";
    }
    foreach($value as $key2=>$value2){
      if(array_search($_SERVER["PHP_SELF"],$value)){
        if($key2 != "root")
           if($_SERVER["PHP_SELF"] == $value2){
              echo "<div class=\"secLevelActive\"><a href=".$value2.">$key2</a></div>\n";
           }else{
              echo "<div class=\"secLevel\"><a href=".$value2.">$key2</a></div>\n";
           }
      }
    }
  }
}
?>
das script funktioniert wunderbar! klappt alles wie gewollt, aber...
wenn ich (wie zB bei gesell.php) parameter mitsenden will, wird die seite zwar aufgerufen, aber das untermenü (in diesem fall "kooperation") wird nicht dargestellt weil der string ja nicht dem dateinamen entspricht.

nun habe ich mir überlegt den string auf das fragezeichen hin zu untersuchen und an dieser stelle zu teilen, um mit dem linken teil die seite zu definieren (für das menü) und mit dem kompletten teil den link darzustellen.

Code: Alles auswählen

$link = explode('?', $variable);
ich hab mir nu schon stunden den kopf zerbrochen und einiges rumprobiert, aber ich bekomm es einfach net hin. leider sind meine php kenntnisse auch net so dolle, weshalb ich auch leider nicht alles im script nachvollziehen kann und auch nicht weiß an welcher stelle ich das am besten wie einbaue.
deshalb baue ich auf euch und hoffe auf eure hilfe. :wink:

Verfasst: 17.04.2006 11:43
von asomy
hmm, vielleicht war das etwas missverständlich. :-?

ich willnicht, dass mir jemand das script umschreibt. ich hoffe hier auf tips und hinweise, da ich bei diesen arrays einfach nicht durchblicke und die logik und struktur (vor allem nach dem letzten foreach) nicht ganz verstehe.

Verfasst: 17.04.2006 14:19
von Pyramide
Du könntest $_SERVER['REQUEST_URI'] statt $_SERVER['PHP_SELF'] verwenden.

Verfasst: 17.04.2006 23:23
von asomy
ja, das ist es! genau der hinweis, war's! 8)
tausend dank!! :wink:
funktioniert einwandfrei! super!! :D