10.05.09 | Webdesign - Unser Konzept
Jeder der sich im Bereich Webdesign tummelt entwickelt über die Zeit seinen eigenen Stil, seine Vorlieben für Tools bis hin zu seinem eigenen Implementierungkonzept. Wir wollen hier unseres ein bischen näher vorstellen.
Das von uns nun schon mehrfach angewendete Implementierungskonzept (oder auch Plattform) hat sich über die Jahre entwickelt (hauptsächlich im Rahmen des Projekts Homepage Tartlau) - und bewährt. Am Anfang stand der Grundsatz, möglichst keine vorgefertigten Lösungen zu verwenden (z.B. für CMS). Wir hatten einfach das Bedürfnis zu verstehen, was passiert und nicht darauf zu vertrauen, daß die Lösungen anderer gut funktionieren. Ganz zu schweigen von den Limitierungen, denen man sich dabei unterwirft.
Das hat natürlich etwas den Beigeschmack von das "Rad neu erfinden" zu wollen, aber um den angestrebten Lerneffekt zu erreichen, war ein anderer Weg für uns nicht erkennbar.
Eine weitere Rahmenbedingung auf unserem Weg war die Maßgabe, nur frei verfügbare Implementierungssoftware zu verwenden, in unserem Fall war das Eclipse für die Entwicklung und Excel/VBA(!) für das Content Management (Excel ist zwar nicht frei verfügbar, man hat es in aller Regel aber schon und es ist einem dann freigestellt, es für diese Zwecke zu (miß)-/ge-brauchen, was die Anschaffung von CMS-Software überflüssig macht).
Nachfolgend noch ein paar Grundannahmen mit denen wir unseren Weg beschritten haben:
1. Strukturierte Datenhaltung ? XML2. Keine Client-seitige Programmierung ergo nur serverseitiges PHP
3. Klare Trennung von Design, Inhalt und Logik: Daten im XML-Format, Design in CSS und XSL files, Logik zum Zusammenführen über PHP
4. Sicherstellung der langfristigen Kontrolle über die Inhalte durch strukturierte Verwaltung
5. Redundanzfreie Datenhaltung, zentrale Ablage von gemeinsam genutzten Inhalten, Arbeiten mit Templates sprich dynamsiches Webdesign.
Alles in allem kann man das oben genannte mit dem Motto the driving link» umschreiben. Was bedeutet das genau?
Die Idee des »driving link«
Grundlage hierfür ist die Erkenntnis, daß alle Informationen, die dazu notwendig sind, bestimmte Inhalt in bestimmten Gewand (sprich Design) darzustellen, dem Link zugeordnet werden können. Die Verknüpfung von Inhalten mit einem bestimmten Link ist selbstverständlich. Weit mehr Flexibilität kann man dadurch erreichen, daß man aber auch die Informationen zu den CSS-Dateien, Ausführungsskripts, Dokumententemplates und weitere Darstellungseingenschaften bei dem link hinterlegt. Alle diese Informationen werden dann ausgelesen und mittels in PHP implementierter Logik zusammengesetzt und angezeigt. So können Inhalte ganz unterschiedlich dargestellt werden (je nach aufrufendem link), leicht geändert und leicht verwaltet werden.
Die Details
Zentrales Element in unserem CMS ist also eine Indextabelle in der alle verwendeten Links hierarchisch organisiert und eindeutig über Schlüssel identifizierbar sind. So hat man nebenbei auch immer den Überblick über alle Verknüpfungen auch nach "draussen", ohne lange Webdokumente durchforsten zu müssen, wo denn überall kritische Links steckten. Bei kleinen Webpräsenzen mag das kein Problem sein, doch bereits bei mehr als zehn Seiten, kann man den Überblick schnell verlieren.
Nebenbei bemerkt, über die hierarchische Anordnung der links ist eine Breadcrumbdarstellung problemlos zu realisieren (wenn man den rekursiven Algorithmus zum Auslesen in PHP implementiert hat ;-))
Jeder Link-ID wird nun eine Dokumenten-ID mit Informationen zu dem zu verwendenden template, stylesheet, php-script hinterlegt. Über die Dokumenten-ID wird auf einen Dokumentenindex verwiesen, in dem alle Dateien und ihren dazugehörigen Metainformationen (Ersteller, Datum, Pfad , etc) verwaltet werden. Dasselbe gilt auch für Bilder. Auch weitere Merkmale, wie Kommentar-Link ja/nein können hinterlegt und ausgewertet werden.
Im Grunde wird hier ein relationales Schema implementiert, das eben die Vorteile einer strukturierten und redundanzarmen Datenverwaltung unterstützt. Der einzige Parameter der beim Aufruf eines Links über die URI übergeben werden muß, ist die Link-ID, die Relationalität wird über PHP hergestellt.
Der Sprung zwischen den Indextabellen in Excel und webtauglichen Dateien wird mit VBA realisiert. Ein kleines Add-In liest die Tabelle aus und schreibt sie im XML-Format auf den Webserver (mit WebDAV auch kein Problem). Nicht genug damit, unsere Texte pflegen wir auch in Excel und wandeln diese mit dem Add-In nach Fertigstellung in XML-Files um. Klingt auf den ersten Blick haarsträubend hat sich aber bewährt. Das Entwickeln einer kleinen eigenen Auszeichnungssprache, mit der in Excel die Texteingenschaften beschrieben werden können, hat dazu geführt, daß zugelieferte Texte, die minimalen Vorgaben entsprechen mußten, in wenigen Minuten im Web publiziert werden konnten, inklusive Bilder und eingbundener Links. Um ein einheitliches Bild der Website zu erreichen, sollte man sich sowieso auf eine limitierte Auswahl an Textgestaltungsmerkmalen beschränken - und genau das macht unsere Auszeichnungssprache. Jedes dieser Elemente hat natürlich sein HTML-Pendant. Die Überführung erfolgt mittels XSL.
Warum in Excel? Gute Frage, eigentlich nur aus dem Grund, das am Anfang unserer Web-Zeit genug Neues zu erlernen war, als daß man sich auch noch mit mySQL hätte auseinandersetzen können. Es muß auch für die Zukunft noch Herausforderungen geben...
Ein weiterer Grund für Excel war zu einem bestimmten Zeitpunkt die Überlegung, die Administration von Websites auf mehrer Schultern zu verteilen und somit auf die Kenntnis im Umgang mit weit verbreiteten Softwaretools angwiesen zu sein. Und da war die Wahrscheinlichkeit, Leute zu finden, die Excel bedienen können, weit höher als solche mit Spezialkenntnissen in einem proprietären CMS-Tool.
Man stelle sich das so vor: Man sagt einem durchschnittlich erfahrenen Excelbenutzer, daß er ohne jegliche Kenntnis in Webtechnologie und ohne Einarbeitung in irgendwelche Tools, eine Webpräsenz pflegen kann. Er muß nichts Neues lernen. Da findet man doch schnell einen Freiwilligen...
Und so liegen auch die Inhalte dieser Seite, wie die Link- und Dokumenten-Indextabellen alle in einer Exceldatei und sind unmittelbar zugänglich und verwaltbar.
Übrigens: Die einzige Komponente in unseren Implementierungen, die wir verwenden und nicht selbst erstellt haben, ist der »simpleviewer« in Flash. Doch da kommen wir auch noch hin.