PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Projekt] Content Management System



Cout
05.01.2009, 21:28
Guten Abend Community,
ich habe in der letzten Woche ein Content-Management-System geschrieben und möchte nun wissen was der normale Free Hack User für Anforderung an ein solches System hat.

Aber kommen wir zu erst zu der aktuellen Basis Struktur :

Die Sektionen
Die Sektionen werden aus der Datenbank geladen und sind das Herz des CMS. Es gibt insgesamt 5 Typen:
[list:b466b07203]
Top Sektion (parent)
Der Typ "parent" beinhaltetet alle Kinder Fenster und ermöglicht eine unendliche Verschachtelung von Sektionen.
Templates (tpl)
Beim Typ Templates wird nur das Template aus der Datenbank geladen und in der Sektion verlinkt.
Menüs (menu)
Die Menü Punkte werden ebenfalls aus der Datenbank geladen und verschachtelt (wenn angegeben) ausgegeben. Aber später mehr dazu.
Modules (module)
Es wird nachgeschaut ob das Module existiert wenn ja wird es registriert und zu einem späteren Zeitpunkt nach Priorität verarbeitet. Durch die Module kann jeder Programmierer seine eigenen Programme in das CMS System ohne Probleme einbinden.
Content (content)
Der "content" Typ kann nur einmal einer Sektion zugewiesen werden. In dieser Sektion finden später die Ausgabe statt.

Jeder Typ wird individuell verarbeitet und jeweils mit einer "div" Umrandung ausgegeben (Bild Darstellung (http://img523.imageshack.us/img523/8259/bild1ys6.png)). Dazu kann kann jede Sektion leicht über das Administration Panel eingestellt werden.

Name
Alias
Beschreibung
Typ
Parent
Hier kann angegeben werden in welcher Sektion die aktuelle Sektion angezeigt werden soll. Bei "Top" wird Parent keine Sektion zugewiesen.
Rechte
Jeder Sektion kann ein Recht zugewiesen werden, später mehr zum Rechte System.
Anzeigen
Durch diese Einstellungen können Sektionen ausgeblendet werden.
Css Klasse
Jeder Sektion kann eine individuelle Css Klasse zugewiesen werden.


Die Menüs
Wie bei den Sektionen gibt es auch hier Typ insgesamt 4:

Kategorie ( cat )
Die Kategorie ist der Kopf von jedem Menü und kann auch an einen Link gebunden werden.
JS Menü ( js_menu )
Dadurch werden Untermenüs erst durch einen Klick auf den Menü Punkt sichtbar. Ist der Typ nicht angegeben werden untergeordnete Menüs einfach versetzt ausgegeben.
Link ( link )
Ist ein normaler Menüpunkt.
Externer ( externer_link )
Führt auf eine andere Seite und wird markiert angezeigt.

Auch gibt es Einstellungen die über das ACP bearbeitet werden können:

Name
Alias
Beschreibung
Typ
Link
Parent
Hier kann angegeben werden in welchem Menü das aktuelle Menü angezeigt werden soll. Bei "Top" wird Parent kein Menü zugewiesen.
Rechte
Jedes Menü kann ein Recht zugewiesen werden, später mehr zum Rechte System.
Anzeigen
Durch diese Einstellungen können Menüs ausgeblendet werden.
Css Klasse
Jedes Menü kann eine individuelle Css Klasse zugewiesen werden.

Das Rechtesystem
Das Rechtesystem es viel komplexer als bei anderen CMS. Den man kann wirklich jeder Sektion, jedem Menü, jedem Module usw. ein eigenes Recht anlegen und dieses Systemgruppen zuweisen oder bestimmten Usern das Recht einräumen.
Das Rechtesystem wird auch im ACP benutzt so ist es zum Beispiel möglich das Designer einen begrenzten Zugriff auf das ACP haben um die Templates und Stylesheets zu ändern oder neue anzulegen.

Das Administration Panel
Folgendes ist im ACP Möglich:

Userverwaltung
Gruppen Verwaltung
Sektions Verwaltung
Menü Verwaltung
Templates Verwaltung
Rechte Verwaltung
Module Verwaltung


Die Module
Die Module ermöglichen es jedem Programmierer das CMS zu erweitern. Die De/Installation erfolgt über eine XML Datei. Aktuelle Module:

User Funktionen
[list:b466b07203]
Alle Member anzeigen
Private Nachrichten
Profile

Gästebuch
Menü Bar
Wo man sich aktuell auf der Seite befindet
[/list:u:b466b07203]
Andere Funktionen

BB Code
Microtime Berechnung ( Momentan D: 0.032s )

[/list:u:b466b07203]

Was würdet ihr euch noch für Funktionen oder Module wünschen?
Soll die Basis Struktur noch geändert werden?

Die Erste Version werde ich Ende der Woche veröffentlichen und ich hoffe auf eine Menge Beta Tester die sich melden. Desweiteren bin ich noch auf der Suche nach einem passenden Namen für das System.

Cout

laKiT
05.01.2009, 21:51
Vorschläge:
PerfectSite
PerfectHP
ContentAll (weil man damit den Fanseite usw machen kann, in der alle vorhanden is^^)
Naja mehr fällt mir immo nicht ein.

king-org
05.01.2009, 21:59
Aha Marktforschung auf ne andere Art ^^
Ich stimme den Vorschlägen von laKiT zu und füge hinzu,
es nicht zu viele Content-Abteilungen geben sollte, damit das Forum auch stabil läuft.
Sonst scheint deine Anordnung ansprechend zu sein.

Youzer
05.01.2009, 22:42
Microtime Berechnung = unnötig

Cout
05.01.2009, 23:20
Microtime Berechnung = unnötig

Also mich und auch viele andere interessiert es sehr in welcher Zeit die Seite generiert worden ist.

Nachher poste ich ein paar Screenshots von der User Index Seite. Allerdings gefällt mir persönlich noch nicht das Design mal schauen was ich da noch verändern werde. Bin auch dort für Vorschläge offen.

Zu den Namen also ich persönlich finde es immer langweilig wenn man aus dem Namen alles ableiten kann wofür das Produkt steht. Daher bin ich mehr für einen Fantasie Namen .

Hamtaro
05.01.2009, 23:52
Also erstmal finde ich den Projektaufbau höchst ansprechend und logisch gestaltet, sowas kriegen nicht alle Programmierer hin ;)
Vor allem dein sehr genaues Rechtesystem finde ich gut.
Vorschläge habe ich eigtl. keine, sieht gut aus :D

Du könntest es "Community Spirit CMS" nennen.
oder von mir aus auch
"Hoogla/Boogla/Zoogla CMS", als Phantasiewort :D

ir0n
06.01.2009, 01:50
Hi.
Wie baust du das ganze auf?
Mit Klassensystem? Prozedulae Codes?

Dein Konzept ist gut, jetzt musst du nur noch unter Beweis stellen dass du auch deinen Code gut strukturierst und keinen Spaghetti-Code produzierst, denn das ist das größte Problem an allen bekannten CMS.

Naja, wenn du das ganze wirklich groß aufziehen willst, wirst du das alleine nicht schaffen.

Trotzdem wünsche ich dir Glück ;)

Lg, Chris

Cout
06.01.2009, 20:56
Ich habe mal ein Screenshot vom Posteingang gemacht. Wie gesagt das Design gefällt mir noch nicht wirklich und deshalb wird das noch geändert. Aber nicht vor der ersten Beta Version da sich durch die Programmierarbeiten noch eine Menge ändern könnte.
Das Banner stammt noch von einem anderem Projekt von mir und wird geändert sowie ich mich für einen Namen entschieden habe.

Screenshot 1 (http://img147.imageshack.us/img147/3032/inboxzl2.png)



Dein Konzept ist gut, jetzt musst du nur noch unter Beweis stellen dass du auch deinen Code gut strukturierst und keinen Spaghetti-Code produzierst, denn das ist das größte Problem an allen bekannten CMS.

Die Basis Struktur ist bereits fertig und beruht auf einem Klassensystem.
Was den "Spaghetti-Code" betrifft so denke ich habe ich das souverän gelöst aber das muss jeder selbst entscheiden.

Cout

kat23
06.01.2009, 20:57
Sieht ganz gut aus, aber der Header ist grausam.

ir0n
06.01.2009, 21:01
Freut mich zu hören ;)
Der Screenshot sieht gut aus - und mal ehrlich: ein Standardtemplate sollte bei einem CMS möglichst einfach gehalten werden. Ich mache gerne eigene Designs und man kann mit einem einfachen Template einfach alles besser verstehen :)

Lg, Chris

Cout
06.01.2009, 21:04
Sieht ganz gut aus, aber der Header ist grausam.
Ja das ist klar wurde ja auch noch nicht designed , aber vill finden sich ja ein paar Designer die Lust haben dem System einen ordentlichen Style zu verpassen.

Fenerium65
06.01.2009, 21:16
Sieht richtig giel aus o.O

Aber de rheader sit wirklich sclimm xDD

H4x0r007
07.01.2009, 13:53
Ich habe die Anforderung, dass jeder String escaped ist und keine XSS, RFIs, Injections usw. enthalten sind. KEINE!

Cout
07.01.2009, 14:17
Ich habe die Anforderung, dass jeder String escaped ist und keine XSS, RFIs, Injections usw. enthalten sind. KEINE!

Zur Vorbeugung solcher Angriffe habe ich eine Security Klasse geschrieben die sämtliche Eingaben filtert. Allerdings wird es kaum möglich sein ein vollständig immunes CMS zuschreiben.

Zum Design: Ich würde gerne vor der ersten Beta das Design anpassen und brauchte dafür ein paar freiwillige Designer die Lust und Spaß an der Sache haben. Also jeder der sich angesprochen fühlt PN an mich.

Starttermin ist Morgen der 08.01.09 - 21 Uhr, ab da werde ich an max 3 Designer die erste Version verteilen.

laKiT
09.01.2009, 22:23
Hast du dich mittlerweile eig. für einen Namen entschieden?

Cout
09.01.2009, 22:27
Nein bisher noch nicht aber ich mag Hoogla. Ich werde wenn es fertig ist eine Umfrage dazu machen.


Aktueller Status Bericht:

Das Module System wurde überarbeitet und fertig gestellt.
Aktuell funktioniert es so das in der Software Datenknoten bereitgestellt werden an denen sich die Module dran hängen können. Wird ein Datenknoten erreicht wird geschaut ob Module anstehen und Funktionsfähig sind. Wenn sie es sind werden sie selbstverständlich ausgeführt , bei mehreren an einem Datenknoten nach Priorität. Die Knoten können leicht über das ACP hinzugefügt oder geändert werden.

Ebenso ist es möglich in den Module selbst , Datenknoten zu erstellen was bedeutet das Module auf andere Module zugreifen können.

Das Sektions System - Status: Fertig.
Das Navigation System - Status: Fertig.
Das Rechte System - Status: Fertig
Das User System - Status: Fertig.
Das Gruppen System - Status: Fertig.

Das Sektions Module - Status: Fertig.
Das Navigation Module - Status: Fertig.
Das Page Module - Status: Fertig.
Das Content Module - Status: Fertig.
Das Menü Bar Module - Status: 10%.

Das User Module - Status: 60%.
Private Nachrichten - Status: Fertig.
Alle Mitglieder Anzeigen - Status: Fertig.
Profil ansehen/bearbeiten - Status: 0.

Das Template Module - Status: 60%
Online neue Styles anlegen sowie Templates und Stylesheets bearbeiten - Status: Fertig.
Templates aus der Datenbank als XML Dokument speichern und wieder in die DB einfügen - Status: 0%.
Template Editor - Status: 0%.

Das Admin Control Panel - Status: 70%
Installations - Status: 0%
Das Design - Status: 20%


Alles in allem bin ich bei ca 75% ich hoffe das ich heute Nacht auf 90% komme so das ich Morgen Mittag die erste Beta veröffentlichen kann.
Wer sich den Code schon vorweg Anschauen möchte kann mir gerne eine PN schicken. Ich bin auch sehr für Konstruktive Kritik offen.