| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
Miss Mila Mitglied
|
php dynamisches Menü |
|
|
Hallo,
ich habe ein kleines Problem mit meinem PHP-Code.
Im Ergebnis sollen die Hauptmenüpunkte voneinander getrennt werden. Wer kann mir helfen?
PHP-Code:
| Code: | <?
$siteRoot="/";
//Menue Start
$menuStruct=array(
"Home"=>array("root"=>$siteRoot."index.php"),
//Menue End
//Menue Start
"News"=>array("root"=>$siteRoot."news.php",
"Aktuell"=>$siteRoot."aktuell.php",
"Archiv"=>$siteRoot."archiv.php"),);
//Menue End
//Menue Start
"weiter"=>array("root"=>$siteRoot."weiter.php",
"noch weiter"=>$siteRoot."noch weiter.php",
"noch weiter"=>$siteRoot."noch weiter.php"),);
//Menue End
if($PHP_SELF == $menuStruct[0]['root']){
foreach($menuStruct as $key=>$value){
if($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($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($PHP_SELF,$value)){
if($key2 != "root")
if($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";
}
}
}
}
}
?> |
|
|
|
|
| 04 Jun 2006 16:22 |
|
  |
V4hn Moderator
|
 |
|
|
also entweder du hast dir das irgendwie aus vorhandenem Code zusammengeschustert,
oder ich weiß auch nicht^^
hab mal die Fehler darin korrigiert und unnötiges entfernt...
| PHP-Code: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| <?php
$siteRoot="/";
//Menue Start
$menuStruct=array(
"Home"=>array(
"root"=>$siteRoot."../",
"test"=>$siteRoot."test.php"),
"News"=>array(
"root"=>$siteRoot."news.php",
"Aktuell"=>$siteRoot."aktuell.php",
"Archiv"=>$siteRoot."archiv.php"),
"weiter"=>array(
"root"=>$siteRoot."weiter.php",
"noch weiter"=>$siteRoot."noch weiter.php",
"noch weiter"=>$siteRoot."noch weiter.php")
);
//Menue End
foreach($menuStruct as $key=>$value){
if($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";
if(array_search($PHP_SELF,$value)){
foreach($value as $key2=>$value2){
if($key2 != "root")
if($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";
}
}
}
?> |
|
_________________

Zuletzt bearbeitet von V4hn am 05 Jun 2006 09:58, insgesamt einmal bearbeitet |
|
|
| 04 Jun 2006 18:04 |
|
 |
Miss Mila Mitglied
|
 |
|
|
Schon einmal DANKE!
Unter http://www.delaris.de/xphpmenue/index.php ist so ein Menü was ich meine. Hier sind die Main-Kategorien in der config.menue.php getrennt und das erscheint dann auch so im Browser.
Leider bin ich nicht so fit in php das ich so etwas hin bekomme. Ich könnte zwar das Menü von delaris so einbauen, aber das passt nicht in mein Konzept. Außerdem wollte ich ein einfaches Script und das von delaris ist mir im Detail zu viel.
Ansonsten habe ich in CSS formatiert:
Leider bekomme ich die Abstände nicht so hin wie ich es gerne hätte, daher kam mir die Idee mit den getrennten Main-Kategorien im php-script.
/************************************************
*************FIRST_LEVEL*************************
************************************************/
/*Style-Definition für die First-Level-Navigation*/
DIV.fstLevel a
{
TEXT-DECORATION: none;
DISPLAY: block;
WIDTH: 120;
PADDING: 3px;
MARGIN: 1px 0 10px 0px;
FONT-FAMILY: verdana, arial, helvetica;
FONT-SIZE: 12px;
FONT-WEIGHT: bold;
TEXT-ALIGN: left;
COLOR: #000000;
BACKGROUND-COLOR: #FFE4B5;
border-bottom: 1px solid #C5C877;
border-right: 1px solid #C5C877;
}
/*Style-Definition für die First-Level-Navigation bei Mouse-Over*/
DIV.fstLevel a:hover
{
COLOR: Maroon;
BACKGROUND-COLOR: #F4A460;
}
/*Style-Definition für die First-Level-Navigation bei aktivem Link*/
DIV.fstLevelActive a
{
TEXT-DECORATION: none;
DISPLAY: block;
WIDTH: 120;
BORDER: 1px solid #793D11;
PADDING: 3px;
MARGIN: 1px 0 0px 0;
FONT-FAMILY: verdana, arial, helvetica;
FONT-SIZE: 12px;
FONT-WEIGHT: bold;
TEXT-ALIGN: left;
COLOR: Maroon;
BACKGROUND-COLOR: transparent;
}
/************************************************
*************SECOND_LEVEL*************************
************************************************/
/*Style-Definition für die Second-Level-Navigation*/
DIV.secLevel a
{
TEXT-DECORATION: none;
DISPLAY: block;
WIDTH: 120;
PADDING: 3px;
MARGIN: 1px 0 10px 0px;
FONT-FAMILY: verdana, arial, helvetica;
FONT-SIZE: 10px;
FONT-WEIGHT: normal;
TEXT-ALIGN: left;
COLOR: #000000;
BACKGROUND-COLOR: #FFDAB9;
border-bottom: 1px solid #C5C877;
border-right: 1px solid #C5C877;
}
/*Style-Definition für die Second-Level-Navigation bei Mouse-Over*/
DIV.secLevel a:hover
{
COLOR: #D2691E;
BACKGROUND-COLOR: #FFFFFF;
}
/*Style-Definition für die Second-Level-Navigation bei aktivem Link*/
DIV.secLevelActive a
{
TEXT-DECORATION: none;
DISPLAY: block;
WIDTH: 120;
BORDER: 1px solid #FF0000;
PADDING: 3px;
MARGIN: 1px 0 10px 0px;
FONT-FAMILY: verdana, arial, helvetica;
FONT-SIZE: 10px;
FONT-WEIGHT: normal;
TEXT-ALIGN: left;
COLOR: #000000;
BACKGROUND-COLOR: #FFFFFF;
} |
|
|
|
| 04 Jun 2006 18:47 |
|
 |
V4hn Moderator
|
 |
|
|
Die Kategorien sind zwar nicht so übersichtlich getrennt,
wie in delaris, aber getrennt sind sie auch ordentlich...
hab jetzt keine Zeit, um mir die Stylesheets anzusehen,
aber der Code sollte ok sein, so wie er ist...
Wenn du jetzt noch ein bisschen mit CSS rumspielst,
dann sieht das auch ganz gut aus  |
_________________
 |
|
|
| 05 Jun 2006 10:04 |
|
 |
Miss Mila Mitglied
|
 |
|
|
Hallo! Trotzdem Dankeschön für dein Statement. Ich werde mich dann wohl doch mal intensiver mit der Problematik beschäftigen müssen. Vielleicht bekomme ich es ja hin und kann dann berichten!
Gruß
M M
 |
|
|
|
| 05 Jun 2006 16:07 |
|
 |
|