PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Aktiver Link im includeten Menu


Kannstebald
08.10.2009, 20:19:40
Hallo,
bin zwar überhaupt nicht fit in PHP, baue aber meine Seiten damit, so gut es eben geht. Allerdings stoße ich dabei auf ein grundsätzliches Problem:
sobald jede neu ladende Seite sich eine menu.php included, führt es dazu, dass
1) die gerade aufgerufene Seite nun auf sich selbst linkt,
2) der gerade aktuelle Link im Menu nicht den im CSS definierten active-Zustand annehmen kann.

Das Menu müsste sich also nach Aufruf einer Seite dynamisch den aktuellen Linkeintrag so umschreiben, dass er inaktiv und damit valide sowie hervorgehoben ist.

Sicherlich bietet PHP (oder Javascript) dafür längst eine adaptierbare Code-Lösung, aber ich finde nirgends was. Noch kann ich so was nicht komplett selber bauen.

Freue mich über jeden Quellenhinweis oder Code-Schnipsel.

Heinrich
08.10.2009, 22:12:03
Freue mich über jeden Quellenhinweis oder Code-Schnipsel.
Zeig doch erstmal deinen eigenen Code - dann findet hier vielleicht jemand den Fehler....

Kannstebald
08.10.2009, 22:35:37
@Heinrich:
Na ja, den benötigten Code habe ich ja noch gar nicht... aber so viel vorweg:
index.php includet Menu
<?php include("inc/menu.php"); ?>

Meine menu.php (hier müsste m.E. ein script mit rein, das die Links dynamisiert):
<div id="menu">
<div><a href="index.php">Startseite</a></div>
<div><a href="who.php">wer wir sind</a></div>
<div><a href="what.php">was wir tun</a></div>
<div><a href="what.php?goto=synergie">die Synergie </a></div>
<div><a href="studios.php">unsere Studios</a></div>
<div><a href="what.php?goto=technik">die Technik</a></div>
<div><a href="intro.php">H&ouml;ren &amp; Sehen</a></div>
<div><a href="done.php">Projekte</a></div>
<div><a href="who.php?goto=location">Standort</a></div>
<div><a href="kontakt.php">Kontakt</a></div>
</div>
Die Seite funzt ja so weit, nur ist das Linkverhalten bisher suboptimal.

Das CSS funzt soweit im laufenden Betrieb und verträgt ggf. auch noch eine zusätzliche Klasse.

Kannstebald
08.10.2009, 23:21:29
Nachtrag

Der Vollständigkeit halber hier das CSS für das Menu:
#menu div a:link, #menu div a:visited, #menu div a:hover, #menu div a:active, #menu div a:focus {
margin: 5px 10px;
width: 140px;
padding: 2px 10px;
display: block;
font-size: 13px;
font-weight: bold;
text-decoration: none;
}
#menu div a:link, #menu div a:visited {
background: url(pics/menubutt.jpg) repeat-x;
}
#menu div a:link {
color: #fff;
}
#menu div a:visited {
color: #666;
}
#menu div a:hover, #menu div a:active, #menu div a:focus {
color: #CCFFFF;
background: url(pics/menubutt_mo.jpg) repeat-x;
}

cortex
09.10.2009, 09:10:22
die aktive subsite ist nirgendwo bekannt gemacht bzw. wird nirgendwo ausgewertet - so wissen weder die subsite selbst, noch das menu, wer gerade dran ist. du brauchst zwei dinge:

1. die aktive subsite auswerten. in deinem fall könnte man $_SERVER['SCRIPT_NAME'] nutzen.

2. der aktive menüpunkt bekommt eine entsprechende css-class / -id zugewiesen.

bin zwar überhaupt nicht fit in PHP, baue aber meine Seiten damit, so gut es eben geht.

du solltest dich möglicherweise etwas intensiver mit der materie beschäftigen; wie du siehst, kommt man irgendwann nicht weiter .-

cx