CMS-Entwicklung

B

BartTheDevil89

Guest
Hallo,

da leider zwei meiner Open Source-CMS mich wieder und wieder zu Hackern führen, hab ich mir vorgenommen mich nun selbst dran zu setzen.

Aber am Anfang steht natürlich die große Frage: WIE? Also vom Grundprinzip sollte doch ein CMS immer gleich aufgebaut sein. Es gibt ein Basismodul und dann gibt es dazu passend mehrere Komponenten, etc.
Aber die Frage stellt sich ja schon was das Basismodul sein soll. Ein einfaches Contentmodul, ein Loginbereich, beides zusammen, etc....

Also, was denkt ihr, wie sollte sowas am besten aufgebaut sein? Bzw. wie würde ihr anfangen?
 
QUOTE Es gibt ein Basismodul und dann gibt es dazu passend mehrere Komponenten

Was ist denn ein Basismodul? Meiner Meinung nach besteht ein CMS vor allem aus Code, der die URL auswertet, und dann die richtigen Module im richtigen Skin platziert und dieses als Response an den User schickt.

Das allerwichtigste, wenn du dich an so ein Projekt wagen willst, ist das Datenbanklayout. Überlege dir lieber erst eine Woche, wie du deine Datengrundlage aufbauen willst, bevor du auch nur eine Zeile Code schreibst.
 
hab meins im groben so aufgebaut:
- framework mit grundfunktionen
- dazu diverse appz wie zb einen webftp
- und module (zb shop, redkationssystem, etc)

smile.gif
 
paar stichworte

- application framework für den applicationsalgo (am besten eins, das mvc ähnlich implementiert)
- class framework (diverse abstraction layer)
- gekapseltes plugin system
 
Wie ich es machen würde:

Der Code zwischen Admin-Bereich und Content-Bereich zu 100% trennen:

Admin-Bereich dient nur dazu die Datenbank mit Werten zu füttern. z.B. beim Benutzer-Modul um die Benutzer zu verwalten. Also ein Grafisch aufgebessertes und benutzerfreundliches PHPMyAdmin
wink.gif
. Alles z.B. im admin/-Directory

Der Content-Bereich holt die Werte aus der Datenbank und stellt sie dar...

Dann könntest du sogar das ganze CMS *löschen* (admin/-Directory) und die Seite würde weiterhin funktionieren.

Hat einige Vorteile:
- Man kann beliebig am CMS-Bereich rumbasteln ohne dass die Seite kaputtgehen kann.
- Sicherheit wird erhöht wenn der Admin-Bereich entsprechend geschützt ist. Der ganze Code im Admin-Bereich ist unabhängig und nicht zugänglich von unbefugten.
- Man hat im Content-Bereich 100% freiheit, kann beliebigen PHP-Code erstellen ohne sich in das CMS einarbeiten zu müssen. Für diesen Bereich vielleicht nur ein paar Hilfsklassen (Template-System, etc.) erstellen.
- Updates sind sehr einfach, da einfach die "admin"-Directory durch die neue Version ausgetauscht wird. Die Seite kann durch ein Update nicht kaputtgehen...

Ein Beispiel für ein solches CMS ist: http://jetbox.streamedge.com/screens.php Ist zwar nicht perfekt, aber das Konzept finde ich sehr gut...

 
Das Basismodul bei unserem CMS, übernimmt nur das nötigste. zB. kontrolliert es
Benutzerprivilegien,
Benutzergruppen,
Templates,
URL-Rewrites
...

Dann hat es nur ganz wenige eigene Seiten zB.:
Login,
Passwort vergessen
Text (aus Datenbank)
...

Und das wichtigste ist, da alles OOP ist, enthält es Basisklassen für:
einfache Seiten,
Seiten mit Formularen,
Datenlisten,
Seiten mit AJAX Unterstützung
...

Das Basissystem hat nur eine handvoll kB, alles andere wird über Templatesystem und Pluginsystem ergänzt.
Am einfachsten entwickelt man so ein System, wenn man einfach ein größere Seite erstellen will. Bei uns war das Ziel Contaxe, und mit dem Aufbau der Seite und deren Plugins, wurde gleichzeitig das CMS ausgebaut und verbessert.
 
Zurück
Oben