Zur Navigation

Aktive Datei ermitteln

1 mark

Moin
Ich möchte eine einfache Website mit bis zu 30 Unterseiten machen.
Zur Realisierung des Menüs dachte ich mir, ich inkludiere dies mittels PHP um das Menü nur einmal warten zu müssen.
Jetzt möchte ich aber dem aktiven Element jeweils auch eine aktive CSS Klasse zuordnern.
<a href="/" class="aktiverLink">home</a>

Wie mach ich das denn am schlausten?

19.11.2007 11:35

2 Jörg

Hier im Forum, wo die aktiven Links nicht klickbar sind, habe ich das in etwa so gelöst:

als erstes wird eine Datei inkludiert, die ein Array mit den einzelnen Menüpunkten enthält

menu1.php:
$menu[0] = '<li><a href="/">home</a></li>';
$menu[1] = '<li><a href="/kontakt.html">kontakt</a></li>';

Danach wird das aktive Element überschrieben und eine zweite Datei inkludiert, die das Menü in einer Schleife aufbaut

index.php:
include ('menu1.php');
$menu[0] = '<li><a href="/" class="aktiverLink">home</a></li>';
include ('menu2.php');

menu2.php:
echo '<ul>';
foreach ($menu as $item) {
    echo $item;
}
echo '</ul>';

Naja, für 30 Seiten vielleicht etwas aufwendig - vieleicht kennt jemand noch eine einfachere Lösung :)

19.11.2007 11:57

3 mark

Hmm
mir schwebte etwas in der Richtung vor, die URL abzufragen und falls es die URL ist, dann entsprechend das
class="aktiverLink"
anzufügen.
Wobei man das dann auch irgendwie durchschleifen müsste.

19.11.2007 12:08

4 Jörg

Das könnte auch gehen und wäre wohl auch einfacher. Dazu bräuchtest du ein mehrdimensionales Array, also z.B.:

$menu[0] = array('/', 'home');

Dann überprüfst du in der Schleife, ob ($item[0] == $_SERVER['REQUEST_URI']) und im Falle des Falles baust du noch das class Attribut ein

19.11.2007 12:17

5 mark

Das klingt doch schon einfacher :-)
Sollte ich das alles in Verbindung mit geschachtelter Listennavigation hinbekommen, werde ich das Ergebnis posten.

Im anderen Fall habe ich auf das gute alte statische HTML zurückgegriffen :-)

19.11.2007 12:25

Beitrag schreiben (als Gast)





[BBCode-Hilfe]