siehst du, doch bei uns gelandet
deiner frage nach zu schliessen, denke ich, du hast mit php nit viel am hut.
also eigentlich ist das script gut beschrieben hier nochmal im einzelnen
PHP-Code:
// Links-Menü
<table>
<tr><td> // Menü-steuerung
<a href="index.php?content=menu1">punkt1</a><br>
<a href="index.php?content=menu2">punkt2</a><br>
// damit sagst du php, beim ersten Link soll er Punkt1 includen usw. , Variable content wird beim Klick auf Link übergeben
das ist dein menü - fesch verpackt in tabellen. Das wichtige daran ist der teil '?content=menu2' -> hier teilst du dem webserver mit,
dass im aufgerufenen file (index.php) eine variable content vorhanden ist und den wert 'menu2' hat. ansprechen tust du das ganze in neuPHP mit $_GET[variablenname].
willst du jetzt weitere links einbauen kopierst du nur einen bestehenden und gibst dem content einen neuen eindeutigen wert
Code:
<a href="index.php?content=menu3">punkt3</a><br>
zu 'deinem' problem mit dem highlighting komm ich später.
der main-teil:
PHP-Code:
</tr>
<td> // Inhalt -Beginn
switch($_GET[content]) // $_GET wir in neueren PHP-Versionen zur Übergabe verwendet ,Syntax: $_GET[variable--ohne $]
{
case "menu1" : include("menu1.inc.php");break;
case "menu2" : include("menu2.inc.php");break;
default : include ("default.inc.php");
}
// Inhalt -Ende
</td>
</tr>
mittels des multi-verzweigungsbefehls switch wird die von uns übergebene variable 'content' abgefragt und je nach enthaltenem wert auf den gewünschten content verwiesen.
zum verständnis:
PHP-Code:
switch(variablenname)
{
variablenwert1:
machwas
break;
variablenwert2:
machwas
break;
default:
wenn nichts passt mach das
}
willst du jetzt den link von oben miteinbauen, dann reicht
menu3:
machwas
break;
in den switch einzubauen.
noch ein wort zu 'machwas'
hier kannst du gott und die welt reinstellen.
am einfachsten - so wie im script gemacht - baust du dir für die verschiedenen unterpunkte jeweils ein eigenes file in das du dann sämtliche dinge reinpackst, die zwischen dem '<td></td>' stehen sollen.
alternativ kannst du weiteren code, html oder nix einbauen.
letzteres macht aber keinen sinn
break: ist wichtig und bedeutet: raus mit dir. hast du kein break, so wird der nachfolgende teil des switch beinhart ausgeführt. kann in manchen fällen sinnvoll eingesetzt werden, in der regel ist aber das break zwingend um die logik zu wahren.
so. war ein bissl ausladend. aber ich hoffe, du verstehtst jetzt den ablauf.
zurück zu deinem problem mit dem highlighting.
PHP-Code:
<tr><td> // Menü-steuerung
<a href="index.php?content=menu1">punkt1</a><br>
<a href="index.php?content=menu2">punkt2</a><br>
// damit sagst du php, beim ersten Link soll er Punkt1 includen usw. , Variable content wird beim Klick auf Link übergeben
dieser code steht ebenfalls in der index.php und durch den link wird dieselbe datei immerwieder aufgerufen.
somit weisst du durch die variable content auch, welche seite gerade aktiv ist.
well. was geniales fällt mir grad nit ein, aber du musst im prinzip entscheiden, der aktuellen seite einen anderen style zuzuweisen. das machst du in einer bedingung und zwar für jeden link:
PHP-Code:
<tr><td> // Menü-steuerung
<?
$class= ($_GET[content]=='menu1')?"class=\"highlighting\":"";
echo "<a $class href="index.php?content=menu1\">punkt1</a><br>";
$class= ($_GET[content]=='menu2')?"class=\"highlighting\":"";
echo "<a $class href="index.php?content=menu2\">punkt2</a><br>";
...
?>
Code:
$class= ($_GET[content]=='menu1')?"class=\"highlighting\":"";
sagt nix anderes als, dass - wenn content=menu1 ist - der variable $class der wert class="highlighting" zugewiesen wird. wenn nicht, dann bleibt $class leer. wichtig dabei ist das ausquoten (\) der anfürhrungszeichen auch im link. sonst funzt es nicht da " <- steuerzeichen.
Code:
<a $class href="index.php?content=menu2">punkt2</a>
füllt dann die klassenbeschreibung an der position von $class ein.
hast du auch eine defaultklasse für deine links, dann musst du dein if ein bissl abwandeln:
Code:
$class= ($_GET[content]=='menu1')?"class=\"highlighting\":"class=\"defaultclass\"";
hoffe ich hab alle klarheiten ausgeräumt...