Dr. O. Hoffmann
Die Kombination von XHTML, CSS und PHP macht Layouts von
internet-Seiten sehr flexibel. CSS-Dateien und Inhalt können
kurzerhand gesetzt, gelöscht oder ausgetauscht werden,
wenn Stil und Wechsel des Inhalts dies erfordern. Auch
browser-Weichen
für Stilvorlagen sind damit einfach zu realisieren.
Sogar die CSS-Dateien selbst können zu PHP-Dateien werden,
deren Inhalt dynamisch verändert wird, worauf wir hier
allerdings einstweilen verzichten wollen.
In diesem kleinen Projekt wird das Projekt selbst das Thema sein und
der Leser kann mitverfolgen, wie es funktioniert.
Voraussetzung dafür sind gute Kenntnisse in (X)HTML, Grundkenntnisse
in CSS und PHP. Ersatzweise können über den Menüpunkt
Verweise entsprechende Dokumentationen im Bedarfsfalle aufgerufen und
eingesehen werden.
Ein Nachteil ergibt sich allerdings aus der Kombination von CSS und PHP
- wenn im Stilvorlagen-Menü des browsers ein alternativer
Stil ausgewählt wird, ändert sich damit nicht die XHTML-Ausgabe
des browsers. Das ist aber nicht so schlimm, da bei dem
"alternate stylesheet"
ja nur Stilvorlagen angegeben werden müssen, die zur Vorauswahl der
XHTML-Ausgabe passen. Für das Umschalten zwischen verschiedenen Stilen ist dann
auf der Seite ein weiteres kleines Menü vorzusehen, mit dem der
Nutzer den Stil selbst auswählen kann. Der Vorteil bei dieser
Methode ist ohnehin, daß Menüs in XHTML unabhängig
von den Möglichkeiten des browsers funktionieren.
Der Laie wird zudem leider das Stilvorlagenmenü des browsers gar
nicht kennen und daher auch nicht nutzen.
Eine Verwaltung verschiedener Stile mit XHTML-Menüs ermöglicht
es außerdem zuverlässig, die Auswahl eines Stils durch den
Nutzer auch auf weitere Seiten zu retten, ohne sich dabei auf den
browser verlassen zu müssen.
Eine browser-Weiche ist ebenfalls im Projekt vorhanden. Um bessere Übersicht zu wahren, kann es bei einem echten Projekt natürlich vorteilhaft sein, diese in eine include-Datei auszulagern, ähnlich anderer vorzunehmender Initialisierungen. Genauso gut könnte die browser-Weiche auch in einer CSS-Datei stil.php untergebracht werden, wenn keine XHTML-Elemente verändert werden müssen.
Das Ziel dieses Beispiels ist es, einige Möglichkeiten
zu zeigen und nicht ein bereits optimiertes Projekt vorzuführen.
Für ein
Tabellenlayout
wäre natürlich etwas anders vorzugehen als für ein reines
CSS-Layout.
Ein Tabellenlayout - wenn überhaupt dann ganz ohne CSS - kann heute
eigentlich nur noch sinnvoll für bekannte alte
browser wie Netscape3 sein, die gar kein CSS kennen. Da derartige browser
heutzutage (August 2004) praktisch nicht mehr genutzt werden, habe ich hier
darauf verzichtet. Es gibt zwar auch aktuelle browser, die kein CSS interpretieren
(Dillo etwa oder Lynx), doch wenn ein solcher browser genutzt wird, kann davon
ausgegangen werden, daß der Nutzer Wert auf Inhalt und nicht auf Layout
legt und absichtlich darauf verzichtet.
Im Sinne von XHTML ist Tabellenlayout ohnehin ein Mißbrauch
der Tabellen-Elemente, die für tabellenartigen Inhalt optimiert sind.
Statt einer CSS-Datei wären dann alternativ Tabellen-Elemente
per PHP im XHTML-Quelltext vorzusehen, um Inhalt anzuordnen.
Für browser ohne CSS-Interpretation ist das gesamte Projekt ohnehin
so gut strukturiert, daß es auch ohne CSS-Formatierung gut funktioniert.
Zu sehen ist dies im Stil n (nichts, kein CSS), der folglich der Anzeige eines
browsers entspricht, der kein CSS interpretiert.
Unter den einzelnen Menüpunkten sind die zentralen Dateien des Projektes je nach Funktion angeordnet und erläutert.
Datei oder Verzeichnis | Funktion | Menüpunkt |
---|---|---|
$verzeichnis, Hier kurz: V/ | Variable: Verzeichnis für Projektdateien | - |
index.php | Zentrale Datei zur XHTML-Ausgabe | Quelltexte: Projektseite |
favicon.ico | Projektlogo für interne browser-Anzeige | Quelltexte: Projektseite |
wurzel.php | Projektinitialisierung | Quelltexte: Kopfdaten |
V/ooch/check.php | Parameter einlesen und auswerten | Quelltexte: Kopfdaten |
V/ooch/kopf.php | XML/XHTML Kopf der Ausgabe | Quelltexte: Kopfdaten |
V/titel/* | Seitentitel | Quelltexte: Kopfdaten |
V/meta/meta.php, V/meta/* | meta-Elemente | Quelltexte: Kopfdaten |
V/menue/headlink.php | link-Elemente für das link-Menü und das CSS-Menü | Quelltexte: Kopfdaten |
V/log | Verzeichnis für Zugriffsstatistik | Quelltexte: Kopfdaten |
V/inhalt | Verzeichnis für die Inhaltsdateien | Quelltexte: Inhalt |
V/menue | Verzeichnis für die Menüdateien, Stilmenü, headlink.php | Quelltexte: Menü |
css | Verzeichnis für CSS-Dateien und Hintergrundbilder | CSS-Dateien etc |