ISAPI CMS – Content management system

Konzept und Strukturen

In diesem Beitrag möchte ich euch mein Konzept für ein schnelles und nicht Ressourcen hungriges CMS näher erklären, übrigens ist es die Basis für diesen Webauftritt.

Was verbirgt sich dahinter, wo liegen die Vorteile und wie funktioniert es.

Das ISAPI - CMS mit all seinen Bestandteilen wurde in Object-Pascal geschrieben, um gehobenen Sicherheitsansprüchen gerecht zu werden. Das heißt, es werden nicht wie bei anderen Systemen üblich, externe Module wie z.B. zum Zippen, zur Bildbearbeitung oder zum E-Mail-Versand eingesetzt.

Leistungsmerkmale und Vorteile der Umsetzung eines Webauftritts auf Basis dieses ISAPI -CMS.

Client-seitige Systemunabhängigkeit

Das CMS wurde Browser basiert entwickelt, um auf allen gängigen Systemen und allen aktuellen Browsern eine Pflege der Seiteninhalte gewährleisten zu können.

URL-Maskierung / URL-Rewriting

Im kompletten CMS wird mit Sprechenden URLs z. B. http://www.homepage.de/mein-produkt gearbeitet, das klassische URL-Rewriting wie es in allen gängigen CMS passiert entfällt, denn es wird nativ durch den ISAPI-Filter erledigt.
Jede Seite hat einen sprechenden Namen, falls er überschrieben wird ist er weiterhin erreichbar, wird jedoch auf den neuen Namen weitergeleitet; so bleiben auch umbenannte Ziele noch erreichbar, bis der Name wieder neu vergeben wird!
Der Titel der Seite wird zur Adresse und erhöht ihr Auffinden bei Google oder andern Suchmaschinen!

WYSIWYG"What you see is what you get"

Der stark im Umfang erweiterte Xinha-Editor ermöglicht eine problemlose Arbeit mit allen Gestaltungsmitteln die einem Redakteur im Internet zur Verfügung stehen, ohne dass HTML-Kenntnisse erforderlich wären! Der Funktionsumfang kann schon mit kleinen Erweiterungen im Stylesheet des Auftrittes ohne weiteren Programmieraufwand vergrößert werden. Integriert ist aber auch ein HTML-Quellcode-Editor, falls Sie wie die Profis arbeiten möchten.

Image to Web – „Automatisierte Bildoptimierung für das Internet“

Unmittelbar nach dem File-Upload (Datei hochladen) wird - falls erforderlich - eine Bild-Konvertierung/Optimierung durch den Hintergrund-Service (Daemon) durchgeführt. Mögliche Eingangs-Formate sind JPEG, GIF, PNG und Bitmap. Falls das Ursprungsbild in CMYK  vorliegt,  wird automatisch eine Konvertierung in RGB  vorgenommen. Um die Datenmengen beim Laden der Seite möglichst gering zu halten, wird das Bild je nach Verwendungszweck in der Seite auf die passenden Werte vom ISAPI-Filter skaliert, dabei werden keine Bilder in den benötigten Größen gespeichert sondern beim Abruf wird jeweils aus dem Originalbild das passende Bild generiert, das hört sich zwar langsam an, aber als Beispiel benötigt die Generierung eines Thumbnails aus einer JPG-Datei auf diesem Server nicht mal eine Millisekunde.

Realtime Editing

Beiträge, Artikel, Meldung usw. sind sofort nach dem Speichern im Netz sichtbar. Natürlich bietet das CMS auch eine zeitgesteuerte Veröffentlichung, die durch die Eingabe eines „gültig von“- und „gültig bis“-Wertes aktiviert wird.

Web Accessibility – Barrierefreiheit

Xinha Editor mit Sprachen-Auswahlbox und Abkürzungsdialog

Xinha Editor mit Sprachen-Auswahlbox und
Abkürzungsdialog

Sowohl die auf Seiten bezogene als auch die auf Wort(e) bezogene Zuordnung von Sprachen ist möglich. Des Weiteren können Abbreviations (Abkürzungen) im Text oder Global für das System definiert werden, so dass sie automatisch gesetzt werden, ohne das ein weiterer Arbeitsschritt erforderlich wird. Bearbeitete fremdsprachige Worte und Textpassagen sind durch Rot-Kennzeichnung mit den Sprachen-Kürzel im Editor sofort zu erkennen. Abkürzungen sind durch eine Sprechblase mit Fragezeichen und gestrichelte Linie gekennzeichnet, beim mouseover (Mouse-Cursor über der Abkürzung) erscheint die ausführliche Schreibweise.

Testen Sie doch einfach einmal unabhängig die Barrierefreiheit Ihrer Homepage unter wave.webaim.org.

W3C-Konformintät

Durch Generierung der Seite als Objektstruktur, ist ein Fehler im HTML-Code (also z.B. das fehlen des schließenden Tags) nicht möglich dadurch wird eine sehr gute W3C-Validität erreicht. Testen Sie doch einmal die Qualität Ihrer Homepage unter validator.w3.org.

SEO – Search Engine Optimization (Suchmaschinenoptimierung)

Geschwindigkeit/PerformancePage Speed

In den HTTP-Headers werden Last-Modified und Etag (ein Hash-Wert über den Seiteninhalt) auch bei dynamischen Inhalten mitgeführt, falls der aufrufende Browser oder Crawler (Robot, Suchmaschine) Content-Encoding unterstützt wird, je nach Vorgabe ein deflate oder gzip (Komprimierung des Seiteninhalts) durchgeführt, so dass ein minimaler Traffic und eine maximale Performance erzielt wird.

Session Kontrolle

Eine Session (Sitzungs-) Kontrolle, die nicht im Servercache stattfindet, sondern intern geregelt ist garantiert stabile Sitzungen auch über kurze Unterbrechungen hinweg z.B. durch Update des Servers.

Seiten-Module

Seiten-Module sind vorhandene vordefinierte Methoden der Darstellung von Seiteninhalten, dessen Aussehen durch Anpassungen im Stylesheet individuell gestaltet werden kann. Durch das festlegen auf eine bestimmte Art des Seiten-Moduls ist es möglich nur die Eingabemöglichkeiten anzubieten, die Sinn machen und nicht den Bearbeiter durch eine Vielzahl von überflüssigen Möglichkeiten zu verunsichern.

Leistungsmerkmale der Module

Mobile Website www.gocher.me

Mobile Website www.gocher.me

Als erstes wollte ich unabhängig von Datenbanken sein und möglichst ganz auf sie verzichten, das ist mir auch bis jetzt gelungen! Anstelle von Datenbanken benutze ich zu Datenhaltung das Filesystem, die Einzelnen Daten werden in Form von HTML, XML und INI-Dateien abgelegt.

/ (root):

Alle Daten liegen außerhalb des Webserver-Root-Verzeichnisses (bei mir /wwwroot), in einem Ordner (bei mir /index),

In globalen Ordner liegen nur die global benötigten Dateien:

/index:

In diesem Verzeichnis (/index) habe ich dann weitere Unterverzeichnisse angelegt:

In diesem Verzeichnis liegen aber auch die folgenden  Dateien:

Im Ordner /gocher liegt eine Datei index.xml in der die komplette Struktur der Internetseite gespeichert ist, eine teaser.xml in der alle Boxen/Kästen abgelegt sind und alle Seiten der Struktur in Form von HTML-Dateien. Existieren Seiten mit mehren Meldungen wird ein Unterverzeichnis mit selben Namen angelegt und in diesem liegen dann die Meldungen wiederum als HTML-Dateien!

/wwwroot:

Im Verzeichnis /wwwroot liegen dann noch die Verzeichnisse die auch direkt über den Webserver erreichbar sein müssen:

Es liegen aber auch hier ein paar Dateien:

Einige Dateien erscheinen so als lägen sie hier, sie werden jedoch dynamisch erzeugt

/sessions:

Hier liegen die Session-Daten in Form von INI-Dateien.

/logging:

Hier liegen alle Logging-Dateien die aus den eigenen Komponenten erzeugt werden