Dr. O. Hoffmann
Das Menü des Projektes wird als Liste von Verweisen geführt.
Weitere Menüs können über den get-Parameter me aufgerufen
werden, der Inhalt über den Parameter in. Reserviert ist die Menüdatei
start.php für das Startmenü, headlink.php für die Verweise
(link-Elemente) im Dateikopf und stilmenue.php für das Stilmenü.
Nun gibt es die sinnvolle Forderung, daß Seiten nicht auf sich selbst
verweisen sollten, um den Nutzer nicht zu verwirren. Dazu dienen die
arrays zu Beginn des Dokumentes - nicht besonders elegant umgesetzt, aber
robust. Ich hatte mir noch eine elegantere Methode überlegt, aber da
sah der Quelltext grauenhaft unerklärbar aus.
<?php # Menueeintraege Angeben, inklusive der Verweise im Stilmenue 'hilfe' und 'statistik' $menut[$in]=' '; $menut['hilfe']='?'; $menut['statistik']='%'; $menut['start']='Start'; $menut['aufbau']='Aufbau'; $menut['projektseite']='Quelltexte'; $menut['cssdateien']='CSS-Dateien'; $menut['einfacher']='einfacher?'; $menut['verweise']='Verweise'; $menut['kontakt']='Kontakt'; # Nun den Inhalt der jeweiligen a-tags definieren: $menue['hilfe']="<a href=\"$datnam?me=$me&in=hilfe&stil=$stil\" tabindex=\"1\" accesskey=\"?\" title=\"Hilfe zu den Stilvorlagen\">".$menut['hilfe']."</a>"; $menue['statistik']="<a href=\"$datnam?me=$me&in=statistik&stil=$stil\" tabindex=\"90000\" accesskey=\"%\" title=\"Seitenstatistik\">".$menut['statistik']."</a>"; $menue['start']="<a href=\"$datnam?me=start&in=start&stil=$stil\" tabindex=\"100\" accesskey=\"h\" title=\"Startseite des Minimalen Projektes\">".$menut['start']."</a>"; $menue['aufbau']="<a href=\"$datnam?me=start&in=aufbau&stil=$stil\" tabindex=\"110\" title=\"Aufbau des Projektes\">".$menut['aufbau']."</a>"; $menue['projektseite']="<a href=\"$datnam?me=quelltexte&in=projektseite&stil=$stil\" tabindex=\"120\" title=\"Wesentliche Quelltexte zum Nachvollziehen\">".$menut['projektseite']."</a>"; $menue['cssdateien']="<a href=\"$datnam?me=css&in=cssdateien&stil=$stil\" tabindex=\"130\" title=\"Die CSS-Dateien zum Nachvollziehen\">".$menut['cssdateien']."</a>"; $menue['einfacher']="<a href=\"$datnam?me=start&in=einfacher&stil=$stil\" tabindex=\"140\" title=\"Noch einfachere Variante eines Projektes\">".$menut['einfacher']."</a>"; $menue['verweise']="<a href=\"$datnam?me=start&in=verweise&stil=$stil\" tabindex=\"150\" title=\"Externe Quellen der Weisheit zu xhtml, css und php\">".$menut['verweise']."</a>"; $menue['kontakt']="<a href=\"$datnam?me=start&in=kontakt&stil=$stil\" tabindex=\"160\" title=\"Kontakt zum Autor\">".$menut['kontakt']."</a>"; # jetzt beim aktuellen Menueeintrag den a-tag gegen einen einfachen strong-tag austauschen: $menue[$in]="<strong title=\"aktuelle Seite: \">".$menut[$in]."</strong>"; # wird nicht mehr gebraucht und kann weg: unset($menut); # jetzt das Menue als Liste ausgeben ?> <li><?php echo $menue['start'];?></li> <li><?php echo $menue['aufbau'];?></li> <li class="me"><?php echo $menue['projektseite'];?></li> <li class="me"><?php echo $menue['cssdateien'];?></li> <li><?php echo $menue['einfacher'];?></li> <li><?php echo $menue['verweise'];?></li> <li><?php echo $menue['kontakt'];?></li>
Ein weiterer Menüteil ist das Stilmenü, welches in einer Extra-Datei steckt.
Ein anderer Stil wird über den get-Parameter stil aufgerufen. Dazu kommt ein
Verweis zum (W3C)-Validator und ein Verweis zu einer Inhaltsdatei namens hilfe.php,
die einige Angaben zum Projekt an sich und kurze Beschreibungen der verfügbaren
Stile per CSS enthält. Ferner gibt es mit % einen Verweis zur Statistik, welche man
bei einem richtigen Projekt mit einem Kennwort schützen sollte (hier: statistik).
Weil das Kennwort dort als get-Parameter übergeben wird, steht es direkt in
der URL, was ein Sicherheitsrisiko darstellt, wenn jemand die URL sehen kann.
Dies kann natürlich umgangen werden, wenn die Daten per post-Methode
übertragen werden. Dazu müßten die Parameter in
check.php auch als post abgefragt werden können. Diese Ergänzung ist
recht einfach, möchte ich hier nicht näher drauf eingehen
Der Punkt zwischen den Einträgen ist im Sinne der
Zugänglichkeit ein Separator. Die verschiedenen Stile wurden als zweites Listenelement
hinzugefügt, welches dann die Identität s2 bekommt, das andere hat die
Identität s1.
<li class="leer"> </li> <li class="stil" id="s1"> <a href="http://validator.w3.org/check/referer" title="Externer Verweis: Validität xhtml testen!" hreflang="en">!</a> · <?php echo $menue['statistik'];?> <span title="Seitenstil auswählen">Stil</span> <?php echo $menue['hilfe'];?> : <span title="aktueller Seitenstil">(<?php echo strtoupper($stil) ; ?>)</span></li> <li class="stil" id="s2"> ·<?php # automatisch die Verweise fuer die Stile erzeugen: $i=1001; foreach ($stilname as $key => $value) { if ($key=="p") { echo "<a href=\"$datnam?me=$me&in=$in&stil=$key$stil\" title=\"Stil: ($key) $value\" accesskey=\"$key\" tabindex=\"".$i++."\">".strtoupper($key)."</a>·"; } elseif ($key != $stil){ echo "<a href=\"$datnam?me=$me&in=$in&stil=$key\" title=\"Stil: ($key) $value\" accesskey=\"$key\" tabindex=\"".$i++."\">".strtoupper($key)."</a>·"; } if (!(($i-1000) % $stilumbruch)) { $ik=floor($i/$stilumbruch)+2; echo "</li>\n <li class=\"stil\" id=\"s$ik\">\n ·"; } } ?> </li>