IPB

Willkommen, Gast ( Anmelden | Registrierung )

> Aktuelle Seite In Menu Mit Css Markieren, ... gab hier irgendwo mal einen Thread
Wertung 4 V
Andreas
Beitrag 22.07.2004 - 21:56
Beitrag #1


____________________
Gruppensymbol

Gruppe: Admin
Beiträge: 1.220
Mitglied seit: 20.10.2001
Mitglieds-Nr.: 3



Hi,

ich suche schon geraume Zeit, kann mich aber nicht mehr erinnern, in welchem Zusammenhang die Lösung hier auftauchte.

Ich möchte in einem Navigationsmenu (welches ich mit Includes eingebunden habe) den gerade aktiven Menupunkt per CSS optisch hervorheben. Mit PHP an sich kein Problem, wird aber vom entsprechenden WebSpace nicht unterstützt. Das Problem hatten wir hier schon mal und es gab eine verblüffende Lösung in CSS.

Ich werd' verrückt, aber ich finde den Thread nicht mehr. Hat da vielleicht zufällig jemand ein Bookmark drauf? lurker.gif Mir reicht echt der Link und dann mach' ich den Thread hier auch wieder weg blush.gif sad.gif

Grüße

Andreas
Go to the top of the page
 
+Quote Post
 
Start new topic
Antworten
HPVD
Beitrag 15.04.2007 - 19:23
Beitrag #2


is getting harder


Gruppe: User
Beiträge: 11
Mitglied seit: 11.04.2007
Mitglieds-Nr.: 6.770



Super, Herzlichen Dank besonders auch für die prägnante Erklärung!
Umfärben funktioniert nun auch im Nav-Bereich - zumindest bei manuell entsprechend verändertem Link.

Nur das script funktioniert noch nicht ganz korrekt - es erkennt nicht wie gewünscht auf welcher Seite man ist -zumindest gibt es nie die passende Link manipulation aus (bei Quelltext-Anzeige im Browser erkennbar)
Die automatische Link-Erstellung funktioniert wunderbar.

weis jemand Rat ?
Ist die Syntax des Scripts zur Abfrage der aktuellen Seite so def korrekt?

Der Beitrag wurde von HPVD bearbeitet: 15.04.2007 - 19:25
Go to the top of the page
 
+Quote Post
Thomas
Beitrag 17.04.2007 - 13:45
Beitrag #3


Nachschlagewerk des Orakels
Gruppensymbol

Gruppe: Mods
Beiträge: 955
Mitglied seit: 29.08.2006
Wohnort: Frankfurt am Main
Mitglieds-Nr.: 6.217



Lass dir mal anzeigen, was mit
HTML
<?php
echo
basename($_SERVER['PHP_SELF']);
?>
ausgegeben wird und ob das jeweils mit einem der Indizes des Arrays übereinstimmt.
Go to the top of the page
 
+Quote Post
Auge
Beitrag 17.04.2007 - 14:35
Beitrag #4


Anwärter auf W3.org Mitgliedschaft
*****

Gruppe: User
Beiträge: 550
Mitglied seit: 28.11.2001
Wohnort: Berlin Friedrichshain
Mitglieds-Nr.: 107



ZITAT(Thomas @ 17.04.2007 - 13:45) *
Lass dir mal anzeigen, was mit
HTML
<?php
echo
basename($_SERVER['PHP_SELF']);
?>
ausgegeben wird und ob das jeweils mit einem der Indizes des Arrays übereinstimmt.

Eine Anmerkung und ein Trick:

Anmerkung: $_SERVER["PHP_SELF"] soll manipulierbar sein (habe ich gelesen, ohne es beweisen zu können), daher kann man als Alternative $_SERVER["SCRIPT_NAME"] nehmen.

Trick: Um ein auf diese Art erzeugtes Menü in jeder Verzeichnisebene verwenden zu können, sollte die Notation verändert werden. Als Beispiel nehme ich mal Andreas' Menü und verteile ein paar Seiten in Unterverzeichnisse. Die Startseite und die Anfahrtsbeschreibung liegen im Wurzelverzeichnis der Website (per PHP mit $_SERVER["DOCUMENT_ROOT"] zu ermitteln, normalerweise das Verzeichnis in dem die Startseite liegt.), die Seite mit dem Kontaktformular und das Impressum liegen im Unterverzeicnis "kontakt".

Außerdem ist es mit einer kleinen Änderung möglich, aus dem Link zur momentan geladenen Seite einen Menüpunkt ohne Verlinkung zu machen. Warum sollte die aktuelle Seite auch mit sich selbst verlinkt sein.

das Array:
QUELLTEXT
<?php
   $url = array(
   "/index.php"=>"Home",
   "/anfahrt.php"=>"Anfahrt",
   "/kontakt/kontakt.php"=>"Kontakt",
   "/kontakt/impressum.php"=>"Impressum");


die Verarbeitung:
QUELLTEXT
<?php
echo '<ul>';
while(list($key, $val) = each($url)){
  echo '<li>';
  if (strstr($_SERVER['SCRIPT_NAME'],$key))
   {
   echo '<span id="current">'.$val.'</span>';
   }
  else
   {
   echo '<a href="'.$key.'">'.$val.'</a>';
   }
  echo '</li>'."\n";
  }
echo '</ul>';
?>


Ich habe die Dateinamen im Unterschied zu Andreas' Lösung vollständig in das Array geschrieben. Ansonsten funktioniert alles gleich, bis auf die Tatsache, dass der Menüpunkt der aktuellen Seite kein Link ist. Der allen Pfaden vorangestellte Schrägstrich/Slash ("/") sorgt dafür, dass ein Browser davon ausgeht, dass die Angaben vom Domainnamen aus gesetzt sind (Home: www.example.com/index.php, Impressum: www.example.com/kontakt/impressum.php). Egal, in welchem Verzeichnis die aufgerufene Seite liegt, das Menü enthält immer die richtigen Pfade zu den anderen Seiten.

Das Element <span> verwende ich, damit die Formatierung in allen graphischen Browsern gleich dargestellt wird. Ohne dieses zusätzliche Element müsste man sich mit dem fehlerhaften Boxmodel des MSIE herumschlagen.

Tschö, Auge

Der Beitrag wurde von Auge bearbeitet: 17.04.2007 - 14:40
Go to the top of the page
 
+Quote Post

Beiträge in diesem Thema
- Andreas   Aktuelle Seite In Menu Mit Css Markieren   22.07.2004 - 21:56
- - helpy   Guten Morgen Andreas, Wer es zufällig die von hei...   23.07.2004 - 5:12
- - Andreas   Perfekt! Der war's :-) Vielen Dank!   23.07.2004 - 6:07
|- - Andreas   Lang ist's her ... aber jetzt brauchte ich es ...   25.06.2006 - 11:38
|- - HPVD   Hallo der thread ist zwar schon älter aber vielle...   11.04.2007 - 21:30
|- - i.b.g   Hallo,ZITAT(HPVD @ 11.04.2007 - 22:3...   12.04.2007 - 6:02
- - HPVD   ja dachte ich natürlich auch das es so geht. Funk...   12.04.2007 - 13:00
|- - Thomas   Bei mir führt folgender HTML-Code zu einem roten V...   12.04.2007 - 14:13
|- - HPVD   Vielen Dank für die Unterstützung!! Dein B...   12.04.2007 - 16:11
|- - Thomas   In diesem Fall solltest du dann folgendes verwende...   13.04.2007 - 11:03
- - HPVD   Super, Herzlichen Dank besonders auch für die präg...   15.04.2007 - 19:23
|- - Thomas   Lass dir mal anzeigen, was mitHTML<?php echo ba...   17.04.2007 - 13:45
|- - Auge   ZITAT(Thomas @ 17.04.2007 - 13:45) L...   17.04.2007 - 14:35
|- - Thomas   ZITAT(Auge @ 17.04.2007 - 15:35) dah...   17.04.2007 - 15:07
|- - HPVD   herzlichen Dank für die vielen Ideen, die Unterstü...   17.04.2007 - 19:18
|- - Thomas   In aller Kürze: Definiere in navigation.php eine F...   18.04.2007 - 8:33
||- - Creme   Hallo ich hab ein Problem mit dem Script! Undz...   20.12.2007 - 22:12
||- - Thomas   ZITAT(Creme @ 20.12.2007 - 22:12) Ha...   21.12.2007 - 9:50
|- - Auge   ZITAT(HPVD @ 17.04.2007 - 19:18) die...   23.04.2007 - 13:52
|- - HPVD   hey danke,  dann werde ich mal auf include "u...   01.05.2007 - 14:56
- - Creme   ok danke für den Tipp! Ich hab den Fehler auch...   21.12.2007 - 13:37
|- - Thomas   ZITAT(Creme @ 21.12.2007 - 13:37) ok...   21.12.2007 - 14:02
- - Creme   Ah ok jetzt verstehe ich wie du das meinst! Da...   21.12.2007 - 14:15
- - Thomas   ZITAT(Creme @ 21.12.2007 - 14:15) Ah...   21.12.2007 - 14:35
- - Thomas   Okay, Antworten auf Cremes Frage bezüglich der Sub...   21.12.2007 - 15:14
- - Auge   ZITAT(Thomas @ 21.12.2007 - 14:35) D...   23.12.2007 - 19:26
- - Thomas   ZITAT(Auge @ 23.12.2007 - 19:26) Was...   24.12.2007 - 8:18
- - Auge   ZITAT(Thomas @ 24.12.2007 - 8:18) ZI...   24.12.2007 - 17:27


Reply to this topicStart new topic
1 Besucher lesen dieses Thema (Gäste: 1 | Anonyme Besucher: 0)
0 Mitglieder:

 



RSS Vereinfachte Darstellung Aktuelles Datum: 14.05.2025 - 0:09

taschenkalender
expertise-panel IPS Driver Error

IPS Driver Error

There appears to be an error with the database.
You can try to refresh the page by clicking here