menüscript für benutzung von parametern modifizieren

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
asomy
Mitglied
Beiträge: 89
Registriert: 10.08.2005 14:50

menüscript für benutzung von parametern modifizieren

Beitrag 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:
mfg asomy 8)
Benutzeravatar
asomy
Mitglied
Beiträge: 89
Registriert: 10.08.2005 14:50

Beitrag 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.
mfg asomy 8)
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Du könntest $_SERVER['REQUEST_URI'] statt $_SERVER['PHP_SELF'] verwenden.
KB:knigge
Benutzeravatar
asomy
Mitglied
Beiträge: 89
Registriert: 10.08.2005 14:50

Beitrag von asomy »

ja, das ist es! genau der hinweis, war's! 8)
tausend dank!! :wink:
funktioniert einwandfrei! super!! :D
mfg asomy 8)
Antworten

Zurück zu „Coding & Technik“