Michael Schröpl: Verschiedene Syle-Sheets

Beitrag lesen

Hi,

Deshalb suche ich nach einer Möglichkeit, bei der der Besucher das
gewünschte Design (also die zu benutzende .css-Datei) auswählen kann,
ohne dass ich die ganze Homepage dreimal hochladen muss.
Ich wäre Dankebar für sämptliche Lösungen des Problems.

Du scheinst alle Deine Dateien dynamisch auf dem Server generieren zu müssen.

Eine nur minimale Änderung gegenüber statischen HTML-Dokumenten wäre es, Server Side Includes zu verwenden, den Namen des Styles als Query-String zu vergeben und diesen dynamisch in den <link>-Tag einfügen zu lassen.
Zur Ansteuerung des Ganzen könntest Du ein Dropdown-Menü mit allen verfügbaren Styles anbieten.
Wenn Du dann den Inhalt der bisherigen Dokumente noch aufteilst in einen Abschnitt vor und einen nach diesem Link-Tag, ihn also durch zwei SSI-Include-Anweisungen zu einem vollständigen Dokument zusammenbaust, könnte das ganze mit einer einzigen SSI-Datei funktionieren. Du müßtest dann halt auch den Namen der anzuzeigenden Datei (bzw. den Basisnamen, aus dem die beiden Stücke adressiert werden können) übergeben und mit Apaches XSSI-Logik versuchen, den Query-String in seine Bestandteile zu zerlegen.

Eine ähnliche Lösung verwende ich auf meine Homepage:
   http://www.schroepl.net/frameset.shtml?oben
und der kleine weiße Pfeil ganz links. Das ist mit SSI realisiert. Ich habe allerdings keine generische Lösung für die gesamte Site und deshalb selbst nicht ausprobiert, ob und wie Du den Query-String zerlegen könntest. Schlimmstenfalls wäre pro Dokument eine SSI-Variante erforderlich - aber eben nur _eine_ und nicht eine pro Dokument. In diesem Falle wäre allerdings eine serverseitige Sprache, welche Dir sicherlich die erforderliche Funktionalität liefert, vorzuziehen (falls verfügbar).

"Richtige" Serverseitige Programmiersprachen bieten Dir zweifellos mehr als SSI. Ich wollte nur vorführen, daß für solche kleinen Aufgaben eventuell schon ein weiter verbreiteter und "defensiverer" Mechanismus ausreichen kann.

Viele Grüße
      Michael