Photoshop
Cinema 4d
HTML / CSS
JavaScript
PHP
Flash
Fotografie
Terragen
Webserver
Informatik
Sonstige
Aktive Links (Php Tutorial)
Tutorial erstellt von Manuel, letzte Änderung am 01.03.2008
Da es sehr häufig vorkommt, dass man den aktiven Link, also den Namen der Unterseite auf der man sich befindet, markieren möchte, zeige ich euch hier eine recht einfache Möglichkeit, die zudem mit sehr wenig Quellcode auskommt. Mit CSS allein ist dies leider nicht machbar, weshalb wir auf PHP zurückgreifen.
Wichtiger Hinweis: Verwendet dieses Script nur dann, wenn register_globals off gesetzt ist. Anderenfalls ist es möglich, die nicht initialisierten Variablen beispielsweise mit Javascript zu manipulieren. Auf der sicheren Seite seid ihr, wenn ihr alle Variablen vor deren Verwendung initialisiert.
Wird beispielsweise eine Unterseite mit dem Namen "Tutorials" aufgerufen, so würde man den Menüpunkt "Tutorials" andersfarbig darstellen wollen. Die Url könnte folgendermaßen aussehen:
www.der-webdesigner.net/tutorials/
Die Variable $url könnte man erzeugen, indem man die URL ausliest und den Teil hinter dem ersten Slash dazu verwendet, den Variablennamen zu vergeben:
Code:
Selbstverständlich könnte man die Variable auch anders füllen, beispielsweise wenn man mit dem Befehl include arbeitet und die Unterseiten sowieso per Variable angeben muss.
Was genau passiert nun also? Die url wird aufgerufen, der erste Teil der url wird in die Variable $unterseite geschrieben, in unserem Beispiel das Wort "tutorials".
Daraus erzeugen wir wiederum eine Variable mit dem namen $tutorials, die wir dann sehr individuell definieren können.
Grundlage für diese Funktion sind dynamische Variablen, die in PHP mit ${$varname} deklariert werden. Somit lassen sich Variablen erzeugen, deren Namen wir im Vorhinein nicht festlegen müssen:
Code:
Diese 4 Zeilen Code bedeuten folgendes:
Wenn wir uns nicht auf der Startseite befinden, die url also nicht nur ein "/" enthält, erzeugen wir eine Variable mit dem Namen der Unterseite, in unserem Beispiel die Variable $tutorials. In dieser Variable können wir auf eine CSS-Klasse verweisen (class="aktiv") oder direkt mit dem Style-Attribut Werte für einen aktiven Link definieren, beispielsweise: style="color: red;"
Befinden wir uns auf der Startseite, so definieren wir uns einfach eine entsprechende gleichnamige Variable.
Verwenden können wir diese Variablen nun, indem wir bei jedem Link die entsprechende Variable angeben:
Code:
In der Variable $tutorials steht nun der Text class="aktiv", alle anderen Variablen sind leer. Somit wird nur bei den Tutorials auf die Klasse verwiesen und dementsprechend wird der Link andersfarbig dargestellt, was in der CSS-Klasse individuell angepasst werden kann.
Viele Grüße,
Manuel
>> Allgemeine Fragen oder Probleme mit dem Tutorial? Hier gehts zum Forum!
Wichtiger Hinweis: Verwendet dieses Script nur dann, wenn register_globals off gesetzt ist. Anderenfalls ist es möglich, die nicht initialisierten Variablen beispielsweise mit Javascript zu manipulieren. Auf der sicheren Seite seid ihr, wenn ihr alle Variablen vor deren Verwendung initialisiert.
Auslesen der URL
Wird beispielsweise eine Unterseite mit dem Namen "Tutorials" aufgerufen, so würde man den Menüpunkt "Tutorials" andersfarbig darstellen wollen. Die Url könnte folgendermaßen aussehen:
www.der-webdesigner.net/tutorials/
Die Variable $url könnte man erzeugen, indem man die URL ausliest und den Teil hinter dem ersten Slash dazu verwendet, den Variablennamen zu vergeben:
Code:
$url = $_SERVER['REQUEST_URI'];
$pieces = explode ("/", $url);
$unterseite = $pieces[1];
$pieces = explode ("/", $url);
$unterseite = $pieces[1];
Selbstverständlich könnte man die Variable auch anders füllen, beispielsweise wenn man mit dem Befehl include arbeitet und die Unterseiten sowieso per Variable angeben muss.
Was genau passiert nun also? Die url wird aufgerufen, der erste Teil der url wird in die Variable $unterseite geschrieben, in unserem Beispiel das Wort "tutorials".
Daraus erzeugen wir wiederum eine Variable mit dem namen $tutorials, die wir dann sehr individuell definieren können.
Verwendung von dynamischen Variablen
Grundlage für diese Funktion sind dynamische Variablen, die in PHP mit ${$varname} deklariert werden. Somit lassen sich Variablen erzeugen, deren Namen wir im Vorhinein nicht festlegen müssen:
Code:
if ($url != "/")
${$unterseite} = 'class="aktiv"';
else
$startseite = 'class="aktiv"';
${$unterseite} = 'class="aktiv"';
else
$startseite = 'class="aktiv"';
Diese 4 Zeilen Code bedeuten folgendes:
Wenn wir uns nicht auf der Startseite befinden, die url also nicht nur ein "/" enthält, erzeugen wir eine Variable mit dem Namen der Unterseite, in unserem Beispiel die Variable $tutorials. In dieser Variable können wir auf eine CSS-Klasse verweisen (class="aktiv") oder direkt mit dem Style-Attribut Werte für einen aktiven Link definieren, beispielsweise: style="color: red;"
Befinden wir uns auf der Startseite, so definieren wir uns einfach eine entsprechende gleichnamige Variable.
Einbindung in den HTML-Code
Verwenden können wir diese Variablen nun, indem wir bei jedem Link die entsprechende Variable angeben:
Code:
echo '<a '.$startseite.' href="...">Startseite</a>';
echo '<a '.$unterseite.' href="...">Unterseite</a>';
echo '<a '.$tutorials.' href="...">Tutorials</a>';
echo '<a '.$unterseite.' href="...">Unterseite</a>';
echo '<a '.$tutorials.' href="...">Tutorials</a>';
In der Variable $tutorials steht nun der Text class="aktiv", alle anderen Variablen sind leer. Somit wird nur bei den Tutorials auf die Klasse verwiesen und dementsprechend wird der Link andersfarbig dargestellt, was in der CSS-Klasse individuell angepasst werden kann.
Viele Grüße,
Manuel
>> Allgemeine Fragen oder Probleme mit dem Tutorial? Hier gehts zum Forum!