Trennung von "Engine" und "Site"

Viele Sicherheitsprobleme rühren daher, dass der Quellcode des CMS im www-Verzeichnis (je nach Provider auch "htdocs" oder "public" benannt) erreichbar ist. Zudem ist die Installation des CMS in diesem Fall so eng mit den Inhalten verzahnt, dass es schwer bis unmöglich ist, beispielsweise mehrere Domänen mit nur einer Installation zu bedienen.

Mit Version 2.0 vollzieht BlackCat CMS die vollständige Trennung zwischen dem Quellcode des CMS ("Engine" oder "Core" genannt) und den Inhalten, also der Site. Somit wird es möglich, mit nur einer Installation mehrere voneinander unabhängige Seiten zu betreiben. Ein einmal installiertes Modul steht anschließend allen Sites zur Verfügung, die mit dieser Installation betrieben werden. Auch Updates sind nur einmal zu installieren.

Möglich wird das durch den Einsatz des sogannten Routings. Hierbei werden alle eingehenden Anfragen - also z.B. der Aufruf einer Seite durch einen Besucher - so vom Site-Verzeichnis an die Engine weitergeleitet, dass für den Besucher nicht erkennbar ist, wo sich das CMS und seine Module tatsächlich befinden. Auf diese Weise wird es auch möglich, CSS- und JS-Dateien zusammenzuführen, ggfs. zu minimieren, und dem Browser "in einem Rutsch" zu senden.

Allerdings birgt diese Trennung von Engine und Site auch Risiken. Wird die CMS-Installation beispielsweise durch ein fehlerhaftes Modul oder fehlgeschlagenes Update zerstört, sind alle damit betriebenen Sites betroffen.

Keine "Access files" mehr

Unter "Access files" verstehen wir die kleinen PHP-Dateien im pages-Verzeichnis. Diese setzen die Variable $page_id auf die ID der jeweiligen Seite und leiten anschließend auf die index.php um, die die Anfrage dann weiterverarbeitet. Bisher hatte das diverse Einschränkungen zur Folge; so war es z.B. nicht ohne weiteres möglich, auf das pages-Verzeichnis komplett zu verzichten.

Durch die Verwendung des Routings werden künftig weder das pages-Verzeichnis noch die Access files benötigt. Der Link - also die URL - der Seite steht schon von jeher in der Datenbank; dieser wurde bisher lediglich mit den Werten für CAT_URL, eingestelltem Seitenverzeichnis (Standard pages) und eingestellter Dateiendung (Standard .php) kombiniert.

Seiten können also künftig einfach direkt über ihren Link aufgerufen werden.

Beispiel:

Link: /willkommen

URL der Seite: http://yourdomain.com/willkommen

Komplett neues Berechtigungssystem

Das Rechtesystem in BlackCat CMS v1.x basiert auf dem Rechtesystem von WebsiteBaker und wurde in dieser Version bewußt nicht verändert. Dieses Rechtesystem ist relativ starr und den wachsenden Anforderungen der Anwender und Modulentwickler nicht mehr gewachsen.

Das neue Rechtesystem ist einer der Kernpunkte der Neuentwicklung von BlackCat CMS Version 2.x. Hiermit wird es z.B. möglich, einzelne Rechte in Abhängigkeit voneinander zu setzen, zudem können Module eigene Rechte mitbringen und über die Core-Funktionen verwalten und abfragen. Zudem läßt sich eine weitaus größere Granularität der Rechte erreichen.

Neues Backend

Mit "Backend" ist hier das Admin Theme gemeint. Das neue Admin Theme "BackStrap" basiert, wie der Name impliziert, auf Bootstrap und jQuery. Alle Bereiche - vom Bearbeiten von Seiteninhalten bis zum Verwalten von Medien - werden komplett überarbeitet und nochmals modernisiert. Hierbei nutzen wir die Erfahrungen, die wir und unsere Anwender mit dem 1.x-Theme "FreshCat" gemacht haben, und die Rückmeldungen hierzu.

Aus WYSIWYG (alt) und MultiColumn wird "EWMS" (Eierlegende Wollmilchsau)

Das bisherige "einfache" WYSIWYG wird mit dem flexiblen MultiColumn-Modul zu einem einzigen Modul zusammengefaßt, welches standardmäßig mit installiert wird. Egal ob mehrere Spalten in einer Zeile (mit oder ohne Rahmen), Preisübersichten oder "klassisches" WYSIWYG, alles ist mit nur einem Modul machbar. Über sogenannte "Varianten" lassen sich weitere Ansichten nachrüsten, so dass viele spezialisierte Module gar nicht mehr nötig sind.

Kompatibilität zu WB(CE) und LEPTON wird komplett gestrichen

BlackCat CMS Version 1.x ist ein Fork von LEPTON, das seinerseits in Fork von WebsiteBaker ist. Version 1.x schleppt noch einiges an Altlasten mit sich herum, von denen viele der Kompatibilität zu WebsiteBaker und LEPTON geschuldet sind. Mittlerweile gibt es für "Hardcore-WBler" als Alternative zu WB Classic den befreundeten Fork WBCE. Es ist daher nur konsequent, mit Version 2.x des BlackCat CMS den "harten Schnitt" zu vollziehen und sich von den Altlasten zu trennen.

Da die Grundstruktur der Module in BlackCat CMS Version 2.x zunächst unverändert bleibt, ist es jedoch denkbar, dass WB(CE)-Module mit nur wenigen Änderungen auch weiterhin in BlackCat CMS funktionieren. Garantieren können und werden wir das jedoch nicht. Wir werden aber BlackCat CMS Version 1.x als rückwärtskompatible Alternative weiterhin supporten; zudem können Module, die unter der GPL-Lizenz veröffentlicht wurden, geforkt und für die Verwendung mit BC2 angepaßt werden.

Für Modulentwickler: class.secure.php entfällt

Die Einbindung der class.secure.php dient in BlackCat CMS Version 1.x der Absicherung des CMS gegen Angriffe von außen. Statt nur auf die Existenz einer bestimmten Konstanten zu prüfen, wie z.B. in WebsiteBaker und anderen CMS üblich, wird hier zusätzlich definiert, welche Scripten Zugriff auf die Konfigurationsdatei config.php haben.

Mit der Trennung von Engine und Site (siehe oben) entfällt die Einbindung der class.secure.php komplett - ebenso wie die Datei selbst.