Das Entwickler-Tagebuch

Um Sie über Neuerungen in der Entwicklung von toxA.CMS informieren zu können, und um zu demonstrieren, dass die Entwicklung nicht still steht, haben wir hier eine Art Tagebuch eingerichtet, in dem wir über neue Entwicklungen innerhalb des Projekts toxA.CMS berichten.

Dateien, Mails und Nutzerrechte

14. Juli 2007 - Seit dem letzten Eintrag aus dem vergangenen Herbst ist ohne Zweifel viel Zeit in die Weiterentwicklung des CMS gesteckt worden. Dabei wurden unter anderem die Verwaltung und Verfügbarkeit von Dateien stark überarbeitet. Durch eine stark modularisierte Struktur der Skripte ist es inzwischen möglich, auf der Suche nach einer Datei mehrere Quellen in unterschiedlicher Reihenfolge zu prüfen. Eine solche Funktion war zuvor zwar auch schon vorhanden, doch wurde die einst starre Struktur nun flexibler gestaltet und kann auch durch Site-spezfische Erweiterungen separat ergänzt werden. Ebenso wurde eine zweite nachgeschaltete Modulkette eingeführt, welche es erlaubt, Filter auf die gefundene Datei anzuwenden. Als Beispiel sei hier der Filter resize genannt, welcher es ermöglicht, per URL-Parameter nach sehr genauen Vorgaben eine gefundene Bilddatei zu skalieren oder nur zu zentrieren.
Neue Quellmodule ermöglichen den Abruf von Dateien aus aktuellen Sitzungsdaten, um bspw. gerade zuvor hochgeladene Dateien noch ohne permanente Speicherung derselben verfügbar zu machen, oder ein dynamischer Generator für abgerundete Ecken, wie er bspw. im momentanen Design dieser Site eingesetzt wird.

Aber auch in anderen Bereichen wurden vorhandene Systeme ergänzt oder verbessert. Mit einer ganzen Reihe neuer Dateien können nun E-Mails analysiert oder aus einzelnen Elementen zusammengestellt werden. Dies beinhaltet neben reinen Anhängen auch Dateien wie Bilder und Stildefinitionen, welche bspw. für die korrekte Darstellung einer HTML-Nachricht eingebunden werden müssen.
Ein HTML-nach-Text-Konverter ermöglicht, aus einer HTML-Vorlage eine ansprechende und immer noch ausreichend gut strukturierte Nur-Text-Version automatisch abzuleiten.
Beide Elemente werden in einem im naher Zukunft ergänzten Newsletter-System genutzt, welches die Erstellung von E-Mail-Newslettern auf Basis der CMS-eigenen Seitenerzeugung ermöglicht und diese dann an selbst verwaltete Empfängerlisten verschickt.

Das Nutzersystem wurde vor allem bezogen auf die Rechteverwaltung überarbeitet und so steht nun endlich eine Rollenverwaltung als Maske dem Administrator zur Verfügung. Für Nutzer wurde die Möglichkeit ergänzt, Module zur Anbindung externer Nutzerquellen einzusetzen; derzeit existiert hier ein Backend zur Anbindung an ein LDAP-Verzeichnis.
Unsere nächsten Schritte an dieser Front beinhalten eine weitere Authorisierungsschicht, welche Funktionen definiert, welche Nutzern und Rollen (Nutzergruppen) dynamisch zugeordnet werden können.

Zahlreiche kleine Änderungen wurden eingebracht: eine JavaScript-Basisdatei bietet Funktionen zum dynamischen Einbinden weiterer JavaScript-Dateien je nach Bedarf. Auf deren Basis wurden onDocumentLoad-Handler implementiert, welche schneller Client-Funktionen anstoßen, darunter die Repositionierung des Fensters auf eine zu fokussierende Stelle der Seite. Aber auch Schranken zur Vermeidung von Datenverlusten in Verwaltungsmasken basiert auf dieser neuen Infrastruktur, ebenso wie die Einbindung von sogenannten RichText-Editoren: hier wurde die Unterstützung für TinyMCE neben dem bewährten aber nicht mehr ganz aktuellen HTMLArea ergänzt, wenngleich es hier noch einige Probleme gibt ...

Was ist sonst noch passiert? Wie schon gesagt, eine Menge, zu viel, um es hier in solcher Genauigkeit aufzuführen: CSS-Definitionen wurden verbessert, die Führung von Besucherstatistiken verbessert und verfeinert, passende Auswertungen sind derzeit in der Entwicklung, Content-Filter für Texte werden überarbeitet und noch stärker modularisiert ... viele neue Funktionen stehen unseren Kunden schon jetzt zur Verfügung.

Fehlerkorrekturen, Seitenelemente und mehr

15. November 2006 - Auf dem Weg zu einer ersten Release wurden zahlreiche Fehler in den bisherigen Quellen entfernt. Viele vorhandene Routinen wurden ergänzt, um vor allem die Entwicklung neuer Erweiterungen zu erleichtern. Die Zahl der inzwischen in der Grundausführung verfügbaren Typen vo Seitenelementen wurde sichtlich erweitert - wo früher nur Texte und Bildergalerien vorhanden waren, lassen sich nun auch Referenzlisten, einfache Terminlisten und Übersichtsseiten verwalten. Seitenzähler werden grundlegend unterstützt, eine Ansicht zur Auswertung ist in Planung.

Bis zum Erscheinen einer ersten Version muss nun vor allem noch an der Internationalisierung und Lokalisierung des Pakets gefeilt werden.

Datenbanken Teil 2

9. September 2006 - Nach ersten Tests mit der neuen PDO-Anbindung wurde die Auswahl an Modulen der CMS-eigenen Datenbank-API weitestgehend reduziert. Neben einem Modul für PDO, welches die Aufgaben der bisherigen Module für SQLite, ODBC und PostGreSQL übernimmt, existiert nur noch MySQLi als separates Modul. Dieses wurde weiter erhalten, da es die Möglichkeit zur verschlüsselten Verbindung bietet.

Desweiteren fanden ausgiebigere Tests mit einer Anbindung des CMS an eine MySQL-Datenbank statt, bei denen zahlreiche Fehler entdeckt und beseitigt wurden.

Skript-Engine, Image-Skripte und Design-Möglichkeiten

25. Mai 2006 - In den vergangenen Wochen wurde die bisher nur rudimentär aufgebaute Skript-Engine des CMS überarbeitet. Wo bisher nur einfach Terme ausgeführt werden konnten, sind nun Kontrollstrukturen, Schleifen und Funktionsaufrufe integriert. Eine erste Anwendung dieser neuen Skript-Engine wurde in Form einer Klasse erstellt, welche "Image-Skripte" verarbeitet. Diesen stehen Funktionalitäten aus der GD-Lib zur Verfügung, einer Sammlung von Funktionen, mit denen sich Grafiken bearbeiten und erstellen lassen.

Mit derartigen Image-Skripten ergeben sich nun auch verbesserte Design-Möglichkeit innerhalb von toxA.CMS, welche nur mit einem Mehraufwand in Sachen Bildgenerierung machbar waren. Wo früher Designelemente für jede Anwendung angepasst werden mussten, lassen sich nun Skripte entwickeln, welche das eigentliche Anliegen des Designs mit wechselnden Anforderungen und Parametrisierungen (Vorder- und Hintergrundfarben, etc.) verbinden.

Eine erste Testseite für diese Funktionen ist auf unserem Test-Server hier verfügbar. Versuchen Sie in jedem Fall den Link Neuladen am Ende der Seite!

Datenbank-Anbindungen

16. Mai 2006  - toxA.CMS nutzte schon länger eine eigene API zur einheitlichen Anbindung verschiedenster Datenbanken. Ähnlich ODBC und nun auch der neuen PHP-Entwicklung PDO bot diese API die Möglichkeit, SQLite oder MySQL 5.x für die Speicherung aller CMS-bezogenen Daten einzusetzen.
Die interne API wurde aus Interesse der Kompatibilität beibehalten, aber um weitere Module des PDO-Systems von PHP5 erweitert, so dass nun auch ODBC unterstützt wird und so weitere Datenbanksysteme wie PostGreSQL angebunden werden können.

Gleichzeitig wurde aber die DB-API marginal angepasst und auf eine konsequente Unterstützung (sogar Präferierung) der Prepare-Bind-Execute-Methode mit Parametern umgestellt. Dies soll sowohl der Performance als auch der Sicherheit des Systems vor Angriffen nützlich sein, da die Möglichkeit von sog. SQL-Injections verringert oder gar vermieden wird.