Minimales Projekt

Dr. O. Hoffmann

Aufbau des Projektes

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.

Zentrale Dateien und Verzeichnisse des Projektes
Datei oder Verzeichnis Funktion Menüpunkt
$verzeichnis, Hier kurz: V/Variable: Verzeichnis für Projektdateien -
index.phpZentrale Datei zur XHTML-AusgabeQuelltexte: Projektseite
favicon.icoProjektlogo für interne browser-AnzeigeQuelltexte: Projektseite
wurzel.phpProjektinitialisierungQuelltexte: Kopfdaten
V/ooch/check.phpParameter einlesen und auswertenQuelltexte: Kopfdaten
V/ooch/kopf.phpXML/XHTML Kopf der AusgabeQuelltexte: Kopfdaten
V/titel/*SeitentitelQuelltexte: Kopfdaten
V/meta/meta.php, V/meta/*meta-ElementeQuelltexte: Kopfdaten
V/menue/headlink.phplink-Elemente für das link-Menü und das CSS-MenüQuelltexte: Kopfdaten
V/logVerzeichnis für ZugriffsstatistikQuelltexte: Kopfdaten
V/inhaltVerzeichnis für die InhaltsdateienQuelltexte: Inhalt
V/menueVerzeichnis für die Menüdateien, Stilmenü, headlink.phpQuelltexte: Menü
cssVerzeichnis für CSS-Dateien und HintergrundbilderCSS-Dateien etc