Meine Projekte

dynamiXsite - Eigenes CMS-Framework

dynamiXsite - Eigenes CMS-Framework

Projektbeginn: 03/2004
Meine Rolle: Hauptentwickler
Projektwebseite: www.dynamixsite.de

Projektdetails

Begrüßungsseite im Backend von dynamiXsite Anschauliche Bearbeitung im Webseiten-Layout Medienbibliothek zum Einbinden von Bildern, Dokumenten unt etc. Dialog zum Verlinken; bei internen Links kann die Zielsprache und das Ausgabeformat angegeben werden. Generische Auflistung von Assets: In diesem Fall von Projekten, die Sie gerade aufrufen. Generische Eingabemaske für Assets: Die aktuelle Projektbeschreibung wurde im abgebildeten WYSIWYG-Editor abgefasst.

Wachsende Anforderungen an dynamische Web-Angebote, insbesondere der Wunsch der Anwender alle Inhalte selbst ohne Programmierkenntnisse mit dem Browser zu verwalten, waren für mich die Auslöser für ein eigenes hoch flexibles CMS-Framework. Damit sollten Internetpräsenzen nicht mehr immer wieder von neu implementiert, sondern aus wiederverwendbaren und anpassbaren Bausteinen zusammengesetzt werden.

Der modulare Aufbau von dynamiXsite kennzeichnet sich durch einen kleinen festen Kern(Kernel) und einer Vielzahl nach Bedarf installierbarer Bausteine(Plugins) aus. Der Kernel deckt dabei nur grundlegende Funktionalitäten ab, wie z.B. die Datenbankanbindung, Datentypabstraktion, Ablaufsteuerung und das Rendern von Templates. Die einzelnen Plugins setzen hingegen spezielle, auch branchenabhängige Lösungen um und verleihen dem Framework seine eigentliche Mächtigkeit.

Bis zum aktuellen Zeitpunkt verzeichnet dynamiXsite auf fünf Standard-Plugins und auf weit über 15 individuelle Plugins, die in Kundenprojekten entstanden.

Kernel

Ist ein zentraler Bestandteil des CMS Frameworks. In ihm ist neben der Verwaltungseinheit, die Prozess- und Datenorganisation festgelegt, auf der alle weiteren Softwarebestandteile des Content Managment Systems aufbauen.

Der Verwaltungseinheit des Kernels obliegt die Aufgabe, Plugins, Klassen und Ressourcen effizient zu administrieren und diese darüberliegenden Komponenten transparent bereitzustellen.

Die Prozess- und Datenorganisation des Kernels folgt dem MVC-Paradigma und stellt Komponenten zur Datenmodellierung(Modell), Kontrollflusskontrolle(Controller) und die Darstellung(View) der vorliegenden Daten bereit.

Zur Modellierung von persistänten Datenobjekten/Assets schreibt der Kernel eine Spezifikation von abstrakten Datentypen vor, die automatisch in ein äquivaltens relationales Datenbankmodell überführt wird. Grundlage des Modells bilden die abstrakten Basisdatentypen(Zahlen, Strings und etc.), die das Datum in einer realtionalen Tabelle unabhängig von der zugrundeliegenden Datenbank und des SQL-Dialekts definieren und darauf den Lese-/Schreibzugriff sowie die Selektion abstahieren. Mit Hilfe des abstrakten Domain-Datentyps lassen sich mehrere Basisdatentypen zu einem einzelnen Datenkonstrukt zusammensetzen. Neben der reinen Haltung der Daten kann der Domaintyp auch spezielle Operationen darauf definieren und ermöglicht die Schaffung immer komplex werdender Datenstrukturen (Bilder, Dateien, saisonale Preisinformationen und etc.). Weiterhin unterstützt der Kernel einen abstrakten Datentyp zur Modellierung von 1:n und n:n Beziehungen zwischen den Assets selbst.

Zur Trennung von Code und Layout und besserer Wartbarkeit beider Teile verwendet der Kernel eine eigens entwickelte Template Engine mit dem Namen XTEP. Die Templatesprache von XTEP basiert auf dem JSP-Konzept aus Java und kann leicht durch Tags der höherliegenden Plugins erweitert werden.

WCMS-Plugin

Mit diesem Plugin wird der Kernel um die eigentliche Funktionalität eines Web Content Managment Systems erweitert. Das Framework wird dabei in zwei Subsysteme, Backend und Frontend, unterteilt und mit einem granularen Zugriffsrechtesystem ausgestattet.

Im Backend findet die Bedienung und Verwaltung des Systems durch einen authorisierten Redakteur statt. Die Stärke des Frameworks beweist sich im Backend dadurch, dass es für Assets unterschiedlicher Art generische Aktionen und Dialoge für den gesamten Lebens-Zyklus realisiert. Damit müssen komplizierte Backend-Bereiche zur Erfassung, Änderung, Veröffentlichung bis hin zur Löschung von Daten nicht immer wieder neu implementiert werden.

Das Frontend ist die Schicht des CMSs, mit welcher sich der Endbenutzer konfrontiert sieht. Dieses lässt sich für mehrere Sites (je nach angeforderter Domain), für mehrere Sprachen und für unterschiedliche Ausgabeformate vorbereiten. Sowohl die Eingabe der Frontend-Inhalte wie auch deren Strukturierung und Layout erfolgt, soweit die dafür notwendigen Zugriffsrechte vorhanden sind, komplett über das Backend.

Benutzer-Plugin

Das Benutzer-Plugin ermöglicht das bis jetzt anonyme Frontend in Abhängigkeit vom aktuell eingeloggten Benutzer auszuliefern. Inhalte und Abläufe können damit personifiziert zugänglich gemacht werden.

Unteranderem lassen sich mit dem Benutzer-Plugin komplexe Community-Projekte und Portale realisieren.

Newsletter-Plugin

Mit dem Newsletter-Plugin werden Rundschreiben per E-Mail an registrierte Abonnenten oder Frontend-Benutzer versandt. Rundschreiben lassen sich dabei an separate Abonnementkreise, sogenannte Channels, mit personifizierten Inhalten zustellen. Der Inhalt kann im Text- oder im HTML-Format abgefasst und um Dateianhänge ergänzt werden.

Immobilien-Plugin

Dieses Plugin ist eine typische Branchenlösung für den Immobilienmarkt. Der Umfang erstreckt sich von der Pflege bis zur detailierten Präsentation von Immobilienobjekten.

Yachtcharter-Plugin

Mit dieser Branchenlösung werden Yachten auf der Homepage zum Chartern angeboten. Neben den eigenen können auch fremde Yachten vermittelt werden, was aufgrund variierender Saisongestaltung eine sehr granulare Preisverwaltung erfordert. Das System ermöglicht unter anderem Verfügbarkeitsanfragen zu stellen und Charter-Reservierungen zu erfassen.

Die wichtigsten Merkmale von dynamiXsite im Überblick

  • Strikte Trennung von Inhalt, Layout und Code
  • Mehrsprachigkeit und Personifizierung aller Inhalte
  • Mehrsprachiges Backend, zur Zeit in Deutsch und Englisch
  • Mehrere definierbare Ausgabeformate
  • Unterszützt mehrere Sites/Projekte unter einer Installation
  • Erweiterbar durch individuelle Plugins und effiziente Datenmodellierung
  • Redaktion im Webseiten-Layout
  • Umfangreicher WYSIWYG-Editor
  • Vollständig Browser-basiert
  • Offen für die Integration von Import- und Exportschnittstellen
  • Granulare Rechte- und Zugriffsverwaltung
  • Community-/Portal-fähig
  • Volltextsuche

Spezifikation

  • Plattform: Websoftware, HTML
  • Programmiersprache: PHP (Version 4.3, 5.1), JavaScript 1.2
  • Persistenzspeicher: MySQL Datenbank (Version 3.2, 4.0, 5.0)
  • Weitere Technologien: JavaScript (DHTML), XML, Template-Engine XTEP