Guten Abend (oder Morgen, wie man's sieht ),
seit einiger Zeit versuche ich mich an einem eigenen CMS und da ich mir dachte, dass ich es sowieso wahrscheinlich releasen werde,
könnte ich auch schon mal einen Development-Thread anlegen. Zusätzlich erhoffe ich mir vielleicht einige Ideen/Anregungen, die man immer mal braucht.
Kurz angesprochen: Falls ihr positiv zum Projekt beitragen möchtet, dann bitte ich euch diesen Thread vollständig zu lesen und Kritikpunkte auch "wiederverwertbar" zu äußern!
Kommen wir zunächst zum Design.
Design
Das Design habe ich versucht möglichst schlicht zu halten, aber trotzdem an die "originale" Homepage von Sulake anzulehnen.
Was da herausgekommen ist? Ein so ziemlich leicht abgespecktes Design im Vergleich zu der von Sulake ("flat" möchte ich es nicht nennen,
da es noch nicht ganz stimmig ist). Ich bin immer noch dabei größere; gewohnte Designelemente in mein Design zu integrieren.
Kurz möchte ich noch erwähnen, bevor die Designrichtlinien-Sektenmitglieder auf mich fliegen, dass ich mit Webdesign noch nie
viel zu tun hatte und mich größtenteils auf die Programmierung konzentriere, daher ist das Design vielleicht nicht ganz so interessant.
Verbesserungsvorschläge sind immer willkommen!
Coding
Zum Coding möchte ich vorab sagen, dass ich sehr auf Ordnung achte und somit das komplette CMS vom CSS/JS-Code bis hin zu der Ordnerstruktur (Screenshot unten)
und dem Inhalt der PHP-Dateien aufs kleinste Detail organisiert ist. Wenn ich CM-Systeme sehe, die bereits im Rootordner 500 Unterordner haben,
wird mir unwohl zu mute. An vielen (fast allen) Stellen des CMS' wende ich OOP an, aber nicht in der strengsten Form, so dass es trotzdem
für absolut jeden übersichtlich ist - man soll als Entwickler ja auch wissen und direkt nachvollziehen können, was sich wo befindet.
Codesnippets könnte ich gerne bereitstellen, doch viel besonderes gibt es nicht wirklich zu sehen. Standardzeugs wie eine User-/Config-/etc-Klasse
ist natürlich vorhanden - in den Page-Dateien werden keine Querys "directly" ausgeführt und auch keine Daten "directly" per Query angefordert, dafür
sind 2 Klassen da (jeweils Datenbankein- und Ausgang), wo auch direkt der Userinput selbstverständlicher Weise gefiltert wird.
Größtenteils war es das über den Code bis auf zwei erwähnenswerte Dinge: Das CMS wurde/wird von mir "from scratch" entwickelt,
d. h., dass absolut jede Datei und jede Zeile von mir stammt (bis auf jQuery, welches ich an einigen Stellen anwende und das 960 Grid-System, wird jedoch
noch ausgetauscht). Der zweite Punkt wäre dann die Geschwindigkeit. Niemand möchte lange Wartezeiten haben. Eine Website sollte (meiner Vorstellung nach)
sofort den Inhalt liefern, den man anfordert. Das führte dazu, dass ich mich sehr lange mit Caching-Methoden, korrekte CSS/JS/IMG-Einbindung, Headern und der Gleichen
beschäftigt habe, was dann auch vieles in die Programmierung beigetragen hat. Zum Beispiel: Für die meisten Bilder/Icons habe ich ein sog. "Sprite" angelegt, wo viele
kleine Bilddateien in Eines zusammengepackt wurde, damit nur ein Bild anstatt von 15 heruntergeladen und gecached werden muss. AJAX findet selbstverständlich
in einer geschwindigkeitsoptimierten Anwendung auch Platz, doch zurzeit wird es nur an wenigen Stellen angewandt. Vieles lasse ich auch in der Anwendung selbst cachen,
was die Anzahl der Querys insgesamt stark reduziert. Inline-CSS/JS existiert nicht, alles hat seine Datei (zur Geschwindigkeitsoptimierung jeweils 1 Datei für JS sowie CSS).
"Features"
Die so genannten "Features" gehören natürlich zu einem, mehr oder weniger, anständigen CMS dazu. Da ich leider noch am Vervollständigen des essentiellen
Funktionsumfanges bin, habe ich noch kaum bzw. keine Zusatzfunktionen integrieren können (ein Forum sowie News-Kommentare + Voting und eine
abgespeckte Topliste ist natürlich schon vorhanden). Ich bin für jegliche Ideen und Anregungen was diesen Bereich anlangt offen!
Was noch ganz praktisch ist (oder auch nicht?):
Es läuft nebenbei ein "Check", ob der User im Client eingeloggt ist oder nicht. Ansonsten wird der User automatisch (ohne Seitenreload)
nach 5 Minuten ausgeloggt. Dann wird auch der Zugriff auf den Client selbst mit "geklautem" SSO-Ticket gesperrt (wurde in Zusammenhang mit dem Emulator programmiert).
Getestet wird das CMS von einigen ehemaligen Mitarbeitern des Hotels Babbo.LA und wird auch auf dessen Domain gehostet.
Nun bin ich zunächst zum Ende des Threads angelangt und erhoffe mir von euch konstruktive (!!) Kritik!
Screenshots sind im Spoiler angehängt.
GIFs (teilweise zur AJAX-Demonstration (es wird die Seite nicht extra neu geladen, um einfache Dinge dynamisch darzustellen)):
ANMERKUNG ZU DEN FORUM-SCREENS: Das Forum befindet sich design-technisch noch komplett im Aufbau!
Spoiler anzeigen
Was es sich mit dem "schwarzen Strich" in der News-Box auf sich hat:
Spoiler anzeigen
Orderstruktur: