Unterschiede CMSimple_XH - CMSimple 4.x

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
Locked
Holger
Site Admin
Posts: 3470
Joined: Mon May 19, 2008 7:10 pm
Location: Hessen, Germany

Unterschiede CMSimple_XH - CMSimple 4.x

Post by Holger » Fri Jul 11, 2014 11:48 am

Hallo zusammen!

Da jetzt schon oft die Frage nach den Unterschieden zwischen CMSimple_XH und CMSimple 4.x + aufkam, möchte ich das nachfolgend einmal etwas erschöpfender darstellen.
Mir ist klar, dass sich diese Zusammenfassung wohl etwas "XH-lastig" liest. Ich habe mich aber bemüht, die Unterschiede möglichst objektiv und detailliert hier darzustellen.
Ergänzungen, Berichtigungen und - falls nötig - eine sachliche Diskussion hierzu sind willkommen, eröffnet in dem Fall bitte einen gesonderten Thread dafür.


Zum heutigen Stand (CMSimple_XH 1.6.2 und CMSimple 4.4.3 - Juli 2014) gibt es auf den ersten Blick lediglich zwei gravierende Unterschiede:

CMSimple ermöglicht durch das "Subsites" - Feature die Möglichkeit mehrere Webseiten mit einer Installation zu betreiben. Das Feature wird vom Autor als "Mehrmandantenfähigkeit" bezeichnet, was aber meiner Meinung nach nicht wirklich zutrifft, da jeder "Mandant" mit mehr oder weniger Programmierkenntnissen leicht die Installation eines anderen Mandanten mit Bordmitteln manipulieren kann.

Der zweite Punkt ist das "Co-Authors" - Feature von CMSimple: hier kann der Co-Autor in einer eigenen Installationsumgebung Inhalte erstellen, deren Quelldatei der Seitenbetreiber (einmalig) in die Hauptseite einbettet. Solche Konzepte gab es schon länger für das klassische CMSimple. Als Beispiel könnte das Plugin "SimpleMultiUser" dienen, welches ähnliche Einschränkungen wie die Co-Authors Lösung hat: sobald der Seitenbetreiber einmal die Inhalte (mittels Pluginaufruf) in die Seite integriert hat, verliert er die Kontrolle über das, was der Co-Autor in Zukunft veröffentlicht. Die Änderungen des Co-Autors sind sofort in der Hauptseite sichtbar. Bei einem "echten" Redaktionssystem gibt es Rechteverteilungen die bestimmen, wer was veröffentlichen, oder wer nur verfassen darf. CoAuthors ist somit nur für Projekte geeignet, bei denen der Betreiber dem Autor absolut vertrauen kann.

Die sonstigen Features, die CMSimple derzeit auf der Projektseite nennt (Versionsprüfung, Organisation der Nutzerdateien usw.) sind entweder in CMSimple_XH ebenfalls enthalten, oder als externes Plugin verfügbar (Pluginmanager, Wartungsmodus, Admin-Template usw.).


Auf den zweiten Blick sind die Unterschiede zwischen den Systemen aber heute schon sehr groß:

Codebasis:
beide Versionen gründen auf dem klassischen CMSimple. Das heutige CMSimple 4.x + ist ein Fork von CMSimple_XH 1.5.3 - auch wenn der Autor sich Mühe gegeben hat und inzwischen die Original-Copyright-Hinweise der CMSimple_XH-Autoren aus dem Quellcode der Core-Dateien von CMSimple 4.x.+ entfernt hat und auch sonst keine Hinweise mehr zu CMSimple_XH auf der Projektseite zu finden sind.
Noch heute entspricht der größte Anteil des Quellcodes von CMSimple 4.x der CMSimple_XH-Version 1.5.3. Abweichungen sind hauptsächlich der Realisation neuer Features geschuldet.

Dem gegenüber steht CMSimple_XH, welches mit Version 1.6 den ersten Schritt zu einer neuen Codebasis nach modernen Standards gegangen ist. Große Teile des Codes sind bereits in Klassen gegliedert, was automatisierte Tests ermöglichte und die Wiederverwendbarkeit erleichtert. Außerdem wurde der gesamte Quelltext dokumentiert, um interessierten (Plugin-) Entwicklern den Einstieg zu erleichtern. Die komplette Umstrukturierung unterlag dem Gebot der Abwärtskompatibilität, was auch fast ausnahmslos umgesetzt werden konnte.

Datenspeicherung:
Alle CMSimple-Varianten speichern die Inhalte (Texte) der gesamten Webseite in einer HTML-Datei (content.htm), aus der automatisch die einzelnen Seiteninhalte, die Webseitenstruktur und die Navigation erzeugt wird.
Seit der ersten Version von CMSimple_XH kam die Möglichkeit hinzu, seitenbezogene Daten in einer weiteren Datei (pagedata.php) zu speichern. Hierdurch gab es dann die Möglichkeit Dinge, die vorher nur umständlich und mittels kryptischen Script-Code machbar waren, ganz leicht per Klick zu erledigen. Beispiele dafür sind u.a. ein anderes Template für eine spezielle Seite zuweisen, eine Seite in der Navigation verbergen oder eine andere Seitenüberschrift als in der Navigation zu verwenden.

Das Konzept hat aber eine Schwachstelle: content.htm und pagedata.php müssen immer absolut synchron gehalten werden. In der Vergangenheit gab es einige Verwirrungen, die durch nicht synchrone Dateien verursacht wurden. Verantwortlich waren zum Beispiel nicht kompatible bzw. fehlerhafte Erweiterungen oder vom Benutzer falsch eingespielte Backups.

In CMSimple_XH werden nun wieder alle Daten in einer einzigen Datei (content.htm) gespeichert. Das ermöglicht einfache Backups und erfahrene Nutzer können die Inhalte auch leicht wieder offline bzw. direkt bearbeiten.

CMSimple bleibt bisher beim Konzept mit zwei getrennten Dateien und der Autor empfiehlt schon lange[1] wichtige Dinge, wie das verstecken von Seiten, besser mit Scripting im Seiteninhalt zu erledigen.

Modularität:
In CMSimple_XH sind in der Basisversion viele Module als eigenständige Plugins realisiert. Sie lassen sich einzeln aktualisieren und werden i.d.R. auch von verschiedenen Personen entwickelt und gepflegt. Wenn für einzelne Module neue Versionen zur Verfügung stehen - was auch bei der automatischen Update-Prüfung berücksichtigt wird, kann der Betreiber die Module schnell selbstständig aktualisieren. Überflüssige Module können auch einfach entfernt werden.

CMSimple geht hier den entgegengesetzten Weg und integriert diese Module möglichst nah in den Kern des CMS. Aktualisierungen erfolgen über ein Update des kompletten Basissystems. Der Betreiber kann ohne fundierte Kenntnisse keine Aktualisierungen einzelner Komponenten selber durchführen[2].

Sicherheit:
Für alle Varianten sind zur Zeit keine gravierenden Sicherheitslücken bekannt, was nicht bedeuten soll das es auch keine unbekannten Sicherheitslücken gibt.
Mit der Neuprogrammierung von CMSimple_XH wurde dem Thema Sicherheit jedoch besonderes Augenmerk gewidmet.
Im einzelnen wurde der Schutz des Admin-Modus erheblich verbessert, eine alte XSS-Lücke geschlossen und ein umfangreicher Schutz gegen CSRF-Angriffe hinzugefügt - der auch von Plugins genutzt werden kann.

Keine dieser Verbesserungen wurde bisher in CMSimple 4.x nachgebildet oder übernommen.

Usability:
Hauptsächlich im Administrationsbereich sind deutliche Unterschiede zwischen den Varianten sichtbar.
Hierzu nur ein paar Beispiele:

CMSimple_XH verwendet für die Konfigurationseinstellungen beispielsweise Checkboxen oder Select-Listen, wo bei CMSimple 4.x einzelne Einstellungen mittels Eingabe der Wörter "true" oder "false" in ein Textfeld aktiviert bzw. deaktiviert werden.
Auch "Fremd-Plugins" können unter XH dieses Feature verwenden, d.h. ohne Änderungen am Programm nachzurüsten.

Änderungen an den Seiteneinstellungen werden bei XH mittels Ajax gespeichert. Dadurch muss die Seite nicht bei jeder Änderung komplett neu geladen werden. Gleiches gilt für die Update-Prüfung, die beim Abruf der Versionsdaten nicht die Seite blockiert.

Gespeicherte Backups können in XH per Klick aktiviert werden.
Unter CMSimple 4.x muss der Betreiber eine gesicherte Backup-Datei mit der zugehörigen pagedata.php manuell mittels FTP-Programm reaktivieren.

Sollte der Betreiber sein Passwort einmal vergessen haben, muss er unter CMSimple 4.x per FTP die Konfigurationsdatei vom Server laden, manuell das verschlüsselte Standard-Passwort an der richtigen Stelle einsetzen, die Datei im richtigen Format speichern und danach wieder auf den Server laden [siehe hier...].
Wenngleich diese Methode auch unter XH funktioniert, gibt es hier jedoch eine "Passwort vergessen?" - Funktion, die dem Betreiber per Mail ein neues Passwort zusenden kann, wenn er diese Funktion in der Konfiguration - durch Eingabe einer Emailadresse für diesen Zweck - aktiviert.

Kompatibilität:
Die Inhalte (content.htm / pagedata.php) aus CMSimple 4.x + sind zu CMSimple_XH kompatibel. Bei einem Update von CMSimple 4.x auf CMSimple_XH werden die Seitendaten (pagedata.php) aus CMSimple 4.x automatisch in die Inhaltsdatei (content.htm) für XH integriert.
Für den umgekehrten Weg ( XH 1.6+ -> CMSimple 4.x +) bietet der Autor von CMSimple 4.x derzeit keine Importmöglichkeit an, weshalb individuelle Seiteneinstellungen hierbei verloren gehen.
Auch die Templates, die das Design der Seite bestimmen, sind noch kompatibel zueinander.
Anders sieht es bei den Plugins aus, die das System um viele Funktionen erweitern. Mit CMSimple_XH 1.6+ gibt es heute deutlich verbesserte und gut dokumentierte Funktionen für Plugin-Autoren, um ihre Erweiterungen schneller, robuster und auch sicherer zu programmieren.
Ein paar neue Plugins nutzen bereits diese verbesserte API und funktionieren deshalb nicht mehr unter CMSimple 4.x.

Vor diesem Hintergrund hat der Autor von CMSimple 4 damit begonnen, für die wichtigsten Aufgaben eigene Erweiterungen zu erstellen[3], die dann komptibel mit CMSimple 4.x + bleiben sollen. Diese Erweiterungen sind in der Regel für Non-Profit-Projekte gegen einen Back-Link kostenlos, jedoch fallen für kommerzielle Nutzung oftmals Lizenzgebühren an.
Erweiterungen (Plugins) für CMSimple 4.x + funktionieren jedoch in aller Regel auch noch unter CMSimple_XH.

Entwicklung / Community / Ausrichtung:
CMSimple und CMSimple_XH stehen beide als Open-Source-Projekte unter der GPL3 zur Verfügung.

CMSimple_XH wird seit längerer Zeit kontinuierlich von vier Entwicklern betreut, die aktiv Programmcode zu neuen Versionen beisteuern. Neue Ideen oder Änderungen werden vorab im Forum diskutiert und dann eventuell in eine öffentlich zugängliche Roadmap aufgenommen. Diese Roadmap dient auch als Basis zur endgültigen Abstimmung über die geplanten Änderungen für die Entwickler.
Anhand der Roadmap kann jeder Interessierte feststellen, was für die jeweils kommenden Versionen von den Entwicklern geplant wird.
Der aktuelle Stand der Entwicklung ist per SVN auf SourceForge.net jederzeit öffentlich zugänglich.
Vorschläge, Ideen und konkrete Lösungen aus der Community sind immer willkommen und können im "Developer-Forum" eingebracht werden.
Auch eventuell vorhandene bzw. bekannt gewordene Fehler (Bugs) in CMSimple_XH werden offen im "Bugs-Forum" kommuniziert.
Die Ausrichtung von CMSimple_XH lautet klar "Community-Project".

Die Weiterentwicklung von CMSimple 4.x verantwortet ausschließlich Gert Ebersbach alleine, der Ende 2012 auch die Rechte am ursprünglichen CMSimple und die CMSimple-Domains von Peter Harteg gekauft hat. Eine Roadmap, oder ein öffentlicher Zugang zum aktuell in der Entwicklung befindlichen Quellcode, wird derzeit nicht angeboten.
Jedoch betreibt der Autor ein eigenes Support-Forum, in das Interessierte auf Antrag per Email aufgenommen werden können.
Laut eigenem Bekunden nach dem Kauf von CMSimple möchte der Autor CMSimple "kommerzieller" aufstellen, wobei das eigentliche CMS frei verfügbar bleiben soll (bzw. muss - da Fremdcode unter der GPL3 enthalten ist)[4][5].


Quellenverweise:

[1] http://cmsimpleforum.com/viewtopic.php? ... 317#p19032
Gert wrote:Es bleibt meine Empfehlung, und ich selbst halte das bei meinen Seiten auch so: Nutzung der pagedata.php nur, wenn es anders nicht geht oder unangemessen schwierig wäre. Plugin-Aufrufe mache ich im content, und Seiten verstecke ich nach wie vor mit #CMSimple hide#, damit sie nicht plötzlich mal sichtbar werden.
[2] http://cmsimple.org/forum/viewtopic.php ... 1054#p1055
Gert @cmsimple.org/forum wrote:
Ludwig wrote: Ludwig wrote:Wie kann man deine angepasste Version updaten?
Gar nicht. Dein Link führt zum Wiki eines anderen CMS.

In CMSimple ab Version 4.0 werden jQuery und alle anderen Standard Plugins mit den CMSimple Versionen weiterentwickelt. Die Verwendung von Plugin-Versionen aus einem der vielen CMSimple Forks (es gibt inzwischen eine Menge davon) ist nicht möglich bzw. kann CMSimple unbrauchbar machen. [...]
[3] http://cmsimple.org/forum/viewtopic.php ... p=876#p876
Gert @cmsimple.org/forum wrote:[...] Deshalb habe ich mich entschlossen, die wichtigsten Plugins selbst neu zu schreiben. Im Augenblick hat sich noch kein einziger Plugin Entwickler klar zu CMSimple bekannt, also ist nur bei Plugins von ge-webdesign.de sicher, dass sie auch weiterhin in CMSimple funktionieren werden. [...]
[4] http://cmsimpleforum.com/viewtopic.php? ... ler#p36269
Gert wrote:[...] Die einzige Lösung ist, dass die CMSimple_XH Community endlich akzeptiert, dass ich CMSimple etwas kommerzieller aufstelle. CMSimple selbst ist ja nach wie vor OpenSource Freeware. [...]
[5] http://cmsimpleforum.com/viewtopic.php? ... 789#p32789
Gert wrote: [...] da kann ich Dich beruhigen, der break-even (oder besser: Return Of Investment) ist nach noch nicht einmal 2 Monaten bereits erreicht - CMSimple hat seinen Kaufpreis bereits erwirtschaftet ;)

Und das ist eine gute Basis und Motivation für mich, weiterzumachen, und am Ende profitieren davon sowohl meine Geschäftspartner (Webdesigner und Agenturen - womit auch die Frage der unterschiedlichen Zielgruppen geklärt wäre) [...]

Locked