WebRex CMS

Dieser Bereich dient dazu, eure Tricks und Erweiterungen vorzustellen, damit diese auch andere Anwender nutzen können. // This area can be used to publish your tricks and extensions to the APF to be used by other developers.
TipTop
Beiträge: 193
Registriert: 25.08.2011, 22:37:08
Wohnort: Klagenfurt, Österreich
Kontaktdaten:

WebRex CMS

Beitrag von TipTop » 29.12.2011, 17:28:41

Ich eröffne hier noch einmal einen Thread, da ja der alte mit dem CMS kaum was zu tun hatte.

Bevor ich auf die Idee kam, ein bereits existierendes Framework einzusetzen, hatte ich folgendes "Konzept" ausgearbeitet: http://www.nicolas-pecher.com/WebRex%20Konzept.pdf
Ich will durch den Einsatz des APF von diesem Konzept nicht abweichen, da ich nachwievor überzeugt bin, dass sich damit extrem schnell und einfach eine Website realisieren lässt, egal welche Forderungen anstehen.

Ich wollte mich hier zudem mal erkundigen, ob nicht jemand Interesse hätte, sich an dem Projekt zu beteiligen. Domain (webrex.org) und Webspace stehen bereits zur Verfügung, um das CMS nach der Fertigstellung zu publizieren.


So, aber jetzt nochmal kurz zurück zum Konzept. In der .pdf Datei habe ich ja erwähnt, dass Layouts aus einem Theme (CSS-Datei) und beliebig vielen Template bestehen kann. Im Admin Control Panel kann ein Layout als Default-Layout deklariert werden. Eine Seite kann nun bestimmen, welches Template es von dem Default-Layout verwenden möchte. Templates bilden eine komplette Websitestruktur, so wie man sie eben kennt (Footer, Header, Sidebar-Right, Sidebar-Left, Header-Menu, etc). Nun können die Containerelemente von einem Template natürlich variieren. So hat das eine Template eine Sidebar-Right, ein anderes hat dafür einen (horizontalen) Menücontainer im Header (oder sogar beides). Beim erstellen/editieren einer Seite lässt sich nun festlegen, welche Module wie oft und in welcher Reihenfolge in welchen Container vorkommen können. Die Container(elemente) müssen über eine .xml Datei (muss in der Layout-ZIP vorhanden sein) WebRex bekannt gemacht werden. Jede Seite kann ein beliebiges Template vom aktuellen Default-layout für seine Inhalte/Module verwenden - somit kann auch jede Website eine individuelle Struktur haben.

In WebRex ist jeglicher Inhalt, der im Browser-Viewport auftaucht ein Modul. Beim Einbinden eines Moduls in eine Seite (bzw. in einen Container) wird eine Kopie von der Modul-Konfiguration erstellt, wodurch zwar die Funktionalität des Moduls gleich bleibt (was ja bei einem MOdul auch der Sinn ist), dafür aber die Inhalte unterschiedlich sein können. So kann ich ein Kontaktformular-Modul auf meiner Website für 3 Personen einsetzen und bei jedem Kontaktformular kann man einen anderen Empfänger oder eine andere E-Mail-Blacklist angeben.


Ich dachte daran, im neuen Jahr mit den Arbeiten am CMS zu starten. Es kann aber auch jetzt schon über den Aufbau diskutiert werden - entweder hier in diesem Thread oder über Skype (Mein Nutzername: nicolas_pecher). Falls jemand an dem Projekt teilnehmen möchte, kann er mich über Skype, dieses Forum oder per E-Mail (nicolas.pecher@webrex.at) kontaktieren.

[EDIT]
Achja, was ich noch erwähnen wollte. Das Admin Control Panel wird komplett in HTML5 und CSS3 umgesetzt, da die IE-Entwickler nun endlich mal zu Vernunft gekommen sind. :)
[/EDIT]

Grüße
Nico

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: WebRex CMS

Beitrag von dr.e. » 29.12.2011, 17:51:05

Hi Nico,

der Ansatz klingt spannend und mit dem APF musst du davon auch nicht abweichen. Wichtig sind für mich dabei hauptsächlich zwei Dinge:
  • Die Verwaltung und Einbindung der Layouts kannst du 1:1 so realisieren. Das sicher nicht mit pure-APF, sondern über eine eigene Taglib und eine Front-Controller-Action, was sich jedoch hinsichtlich des Aufwands in Grenzen hält.
  • Die Einbindung von Modulen in Containern lässt sich entweder statisch über eine Zuordnung im Template oder dynamisch per eigenen Tags, die in den Layout-Templates zwar den Bereich markieren, jedoch an Hand der Seite ein dynamisches Mapping pro Seite besitzten, realisieren. Hierzu ist ein wenig mehr Arbeit beim Erstellen des Page-Domänen-Objekts notwendig, der sch aber im Nachhinein auszahlt. Auch die Nutzung des GORM kann ich mir hier gut vorstellen.
Zum Thema CMS hatte ich vor einiger Zeit folgendes Diagramm erstellt:

Bild

Es zeigt die Struktur von Seite zu Template zu Bereichen zu Inhalten. Vielleicht hilft dir das ein wenig für die Implementierung.
Falls jemand an dem Projekt teilnehmen möchte, kann er mich über Skype, dieses Forum oder per E-Mail (nicolas.pecher@webrex.at) kontaktieren.
Aus Zeitgründen kann ich das leider nicht, ich kann dir jedoch anbieten ein Code-Review für die Core-Struktur durchzuführen und dir Hinweise und Tipps zu geben, wie die Umsetzung mit dem APF am effizentesten möglich ist. Sofern sich Erweiterungen für das Framework selbst ergeben, kann ich diese natürlich beisteuern.

Dann bleibt mir nur noch dir viel Spass und Erfolg zu wünschen. Lass immer mal von dir hören wo du gerade stehst. :)
Viele Grüße,
Christian

TipTop
Beiträge: 193
Registriert: 25.08.2011, 22:37:08
Wohnort: Klagenfurt, Österreich
Kontaktdaten:

Re: WebRex CMS

Beitrag von TipTop » 29.12.2011, 20:51:13

Guten Abend Dr!
oder dynamisch per eigenen Tags, die in den Layout-Templates zwar den Bereich markieren, jedoch an Hand der Seite ein dynamisches Mapping pro Seite besitzten
Ja, genau so hab ich mir das gedacht - bei statischer Einbindung der Module in die Templates würde nämlich einiges an Flexibilität verloren gehen, da damit jede Seite die im Template vorgegebenen Module nutzen "müsste".

Die Daten der Seiten mittels GORM verarbeiten, oder? Für die restlichen CMS-Komponenten (Benutzer, Benutzgruppen, Module, Layouts) dachte ich an was einfacheres:

Bild

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: WebRex CMS

Beitrag von dr.e. » 29.12.2011, 22:37:00

Hi Nico,
Die Daten der Seiten mittels GORM verarbeiten, oder?
Das wäre meine Empfehlung - ja. Damit bist du hinsichtlich des Datenmodells flexibel und kannst bei einem Update mit Hilfe des Update-Tools einiges automatisieren (siehe UMGT-Wizzard in der Sandbox).
Für die restlichen CMS-Komponenten (Benutzer, Benutzgruppen, Module, Layouts) dachte ich an was einfacheres:
Der GORM ist quasi "nur" ein Mapper, insofern kommt es darauf an, was du daraus machst. Für die Benutzer-Verwaltung kann ich dir das Modul usermanagement des APF ans Herz legen. Das kann von Registrierung bis Login und Verwaltung von Sichtbarkeits- und Funktionaberechtigungen alles.

Die restlichen Entitäten würde ich wie folgt modellieren:

Code: Alles auswählen

Layout (1) ----> (1) Page (1) <---- (n) Slot (1) <---- (n) Component
 (1) |------------------------------------^ (n)
Damit hast du die größtmögliche Flexibilität. Sichtbarkeitsberechtigungen würde ich für die Benutzer auf Layout, Page und Component vergeben.
Viele Grüße,
Christian

TipTop
Beiträge: 193
Registriert: 25.08.2011, 22:37:08
Wohnort: Klagenfurt, Österreich
Kontaktdaten:

Re: WebRex CMS

Beitrag von TipTop » 30.12.2011, 14:29:44

Die APF-Module wären so wie sie sind nicht einsetzbar - dafür aber einiges von Ihrer Funktionalität. Überlegt hab ich mir daher folgendes:

In webrex/apps/module würde ein weiteres Verzeichnis mit dem namen webrex dazukommen. Dort werden eben die auf WebRex zugeschnittenen Module beherbergt. Zudem wird dort für jedes APF-Modul ein Adapter untergebracht werden, mit welchem die WebRex Module einen Großteil der Funktionalität der APF-Module nutzen können.

In Zukunft würde ich, wenn ich ein Modul für WebRex schreibe folgend agieren:
1) Ein Modul entwickeln, welches rein auf das APF zugeschnitten ist
2) Eine Adapter-Klasse für das APF-Modul
3) Ein WebRex Modul, welches über den Adapter die Funktionalität des APF-Moduls nutzen kann

Oder hat jemand von euch vielleicht eine bessere Idee?

Grüße,
Nico

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: WebRex CMS

Beitrag von dr.e. » 30.12.2011, 20:31:15

Ni Nico,

zunächst würde mich interessieren, wo das Gap liegt, das du ausfüllen möchtest/musst. Falls dieses in der Form tatsächlich vorliegt, halte ich die vorgeschlagene Lösung für durchaus gangbar. Allerdings würde ich einen eigenen Namespace webrex unter /apps anlegen, dann ist die Zugehörigkeit besser erkennbar und du läufts bei einem Update nicht Gefahr, dass du deine Ordner versehentlich löschst.

Zunächst würde ich jedoch gerne das Funktions-Gap diskutieren - vielleicht kann die APF-Funktionalität noch etwas von dir lernen. ;)
Viele Grüße,
Christian

TipTop
Beiträge: 193
Registriert: 25.08.2011, 22:37:08
Wohnort: Klagenfurt, Österreich
Kontaktdaten:

Re: WebRex CMS

Beitrag von TipTop » 02.01.2012, 15:40:46

dr.e. hat geschrieben:zunächst würde mich interessieren, wo das Gap liegt, das du ausfüllen möchtest/musst.
Einige APF-Module liefern kein Backend, sprich kein GUI für die Konfiguration.

Oder es gibt sehr umfangreiche Module (UMGT), welche ich aber in seperate Module aufteilen muss: Login-Modul, Registrieungs-Modul, ...

Grüße
Nico

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: WebRex CMS

Beitrag von dr.e. » 02.01.2012, 22:03:06

Hallo Nico,
Einige APF-Module liefern kein Backend, sprich kein GUI für die Konfiguration.
Das ist korrekt und dieser Umstand erfordert das Erstellen einer GUI. Dies ist beispielsweise in der Sandbox für das Setup der DB-Konfiguration oder für das UMGT enthalten und mit den Mitteln der Konfigurationskomponente sehr einfach realisierbar.
Oder es gibt sehr umfangreiche Module (UMGT), welche ich aber in seperate Module aufteilen muss: Login-Modul, Registrieungs-Modul, ...
Aus welchem Grund? Du kannst diese doch ohne weiteres getrennt einsetzen und auch mit einem eigenen Admin-GUI versehen. Eine Software-technische Trennung braucht es jedoch meiner Ansicht nach nicht.

Ich möchte nicht den Eindruck entstehen lassen, dass du die bestehenden Module nutzen musst (das ohnehin nicht :)), jedoch habe ich noch keinen für mich nachvollziehbaren Grund gelesen, der dich von der Nutzung von Modulen abhält. Im Gegenteil, du musst dich beispielsweise beim UMGT nicht mit der umfangreichen Implementierung rumschlagen.
Viele Grüße,
Christian

TipTop
Beiträge: 193
Registriert: 25.08.2011, 22:37:08
Wohnort: Klagenfurt, Österreich
Kontaktdaten:

Re: WebRex CMS

Beitrag von TipTop » 02.01.2012, 23:21:30

dr.e. hat geschrieben:Du kannst diese doch ohne weiteres getrennt einsetzen und auch mit einem eigenen Admin-GUI versehen.
Ja, das meinte ich auch :)

Dennoch muss ich Login und Registrierung des UMGT auf 2 Module aufteilen - bzw. was ich damit sagen will:

WebRex-Login-Modul: verfügt nur über Admin-GUI (damit es im CMS nutzbar ist) und baut komplett auf dem UMGT-Login auf
WebRex-Registrierungs-Modul: verfügt nur über Admin-GUI (damit es im CMS nutzbar ist) und baut komplett auf der UMGT-Registrierung auf
WebRex-Blog-Modul: verfügt über Admin-GUI, verknüpft APF-Newspage mit APF-Kommentarfunktion
wo das Gap liegt
Das liegt wie gesagt nur an dem teilweise fehlenden Modul-GUI - für das CMS-ACP benötigt jedes Modul aufjedenfall eine GUI. Entweder code ich dieses GUI direkt ins APF-Modul und dieses ist dann im ACP nutzbar oder aber ich schreib ein "neues Modul", welches die Funktionalität des APF-Moduls nutzt und nur eine GUI liefert. Zweiteres ist besser, da nach einem APF-Update dann nicht das modifizierte APF-Modul futsch ist. Nutzen nun mehrer WebRex-Module den Pager oder das UMGT-Login (was sicher der Fall sein wird), dann kommts noch besser, einen Adapter für die APF-Module zu schreiben, damit ich dann bei einem APF-Module-Update nicht alle WebRex-Module umschreiben muss, sondern lediglich den Adpater ein weing anpassen muss.

Grüße Nico

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: WebRex CMS

Beitrag von dr.e. » 03.01.2012, 13:15:43

Hi,
WebRex-Login-Modul: verfügt nur über Admin-GUI (damit es im CMS nutzbar ist) und baut komplett auf dem UMGT-Login auf
WebRex-Registrierungs-Modul: verfügt nur über Admin-GUI (damit es im CMS nutzbar ist) und baut komplett auf der UMGT-Registrierung auf
WebRex-Blog-Modul: verfügt über Admin-GUI, verknüpft APF-Newspage mit APF-Kommentarfunktion
OK, das klingt vernünftig. :)

Ich denke, ich habe deinen Ansatz verstanden. Ist vielleicht zunächst falsch bei mir angekommen.
Viele Grüße,
Christian

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: WebRex CMS

Beitrag von Megger » 03.01.2012, 13:30:21

Hat sich auch erst so angehört als ob du alles neuschreibst und gar nichts vom APF verwenden kannst.

Aber je nach Anwendungsfall erledige ich es genau so wie du. Manchmal reicht die Standardimplementierung, manchmal will und braucht man noch etwas spezifisches. Ich denke man wird es nie schaffen mit einer Komponente alle Leute zufrieden zu stellen (wenn man alle Anwendungsfälle abdeckt ist die Performance meist schlecht / Achtet man auf die Performance so wird man selten genutzte Anwendungsfälle auslassen - Ist natürlich nur ein Beispiel, aber ich denke das verdeutlicht die Sache ganz gut)

Hört sich auf jedenfall interessant an dein CMS
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

TipTop
Beiträge: 193
Registriert: 25.08.2011, 22:37:08
Wohnort: Klagenfurt, Österreich
Kontaktdaten:

Re: WebRex CMS

Beitrag von TipTop » 04.01.2012, 14:08:14

Megger hat geschrieben:Hat sich auch erst so angehört als ob du alles neuschreibst
Beim erneuten durchlesen ist mir das jetzt auch aufgefallen, sorry. :)

Ich habe gestern den Installationsprozess der Layout-Komponente fertiggestellt. Jetzt gerade bin ich mit dem Schreiben von einem Tutorial (Wie erstellt man ein Layout) fertig geworden: http://www.webrex.org/layout.html
Über diese Formular lässt sich ein Layout installieren: http://www.webrex.org/test/acp/index.ph ... stallation

Was haltet Ihr so vom Aufbau der Layout-Komponente? Verbesserungsvorschläge?

Grüße,
Nico

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: WebRex CMS

Beitrag von Screeze » 04.01.2012, 16:46:42

Ein Layout muss über eine style.css verfügen.
Ein Layout muss über eine functions.js verfügen.
Darf da je nur 1 Datei vorhanden sein, oder muss es MINDESTENS 1 Datei sein? Falls max 1 halte ich das schon mal für einen Design Fehler ;)

TipTop
Beiträge: 193
Registriert: 25.08.2011, 22:37:08
Wohnort: Klagenfurt, Österreich
Kontaktdaten:

Re: WebRex CMS

Beitrag von TipTop » 04.01.2012, 18:07:56

Hallo,
Screeze hat geschrieben:Darf da je nur 1 Datei vorhanden sein, oder muss es MINDESTENS 1 Datei sein? Falls max 1 halte ich das schon mal für einen Design Fehler
Es darf nur eine und es muss mindestens die eine vorhanden sein.
Diese Begrenzeung habe ich absichtlich implementiert, da es wenig Sinn machen würde, den CSS Code für ein Layout auf mehr als eine CSS-Datei aufzuteilen. Hab schon öfters bemerkt, das Laien die CSS-Eigenschaften von Website-Teilen gerne auf verschiedene CSS-Files auslagern (bspw.: menu.css, footer.css, content.css) - so was kann dadurch schonmal nicht mehr passieren.

Der IE weicht ab Version 10 von den CSS-Interpretationen gegenüber anderen Browsern nicht mehr ab. Da Windows Nutzer nun automatisch aufgefordert werden, Ihren IE-Browser upzudaten (auf v.9), sind auch keine Conditional Comments mehr Notwendig, weshalb auch seperate CSS-Files für ältere IE's überflüssig sind. Wozu also eine unbegrenzte Anzahl an CSS Dateien zulassen? Platzmangel kann da kein Argument sein, denn in der style.css werden bzw. sollen nur layoutspezifische Eigenschaften festgelegt werden. Jedes Modul kann seine eigenen CSS-Datein mitliefern - um die Formatierung von Modulen muss sich die style.css eines Layout also nicht kümmern.

Es wird aber noch die Möglichkeit integriert, eine optionale CSS-Datei in einem Layout-Package mitzuliefern. Diese wird aber nur dann mit hochgeladen, wenn sie den Namen print.css trägt. Das System prüft anschließend, ob die print.css vorhanden ist - falls ja, wird diese mittels link-Element eingebunden und erhält im media-Attribut den Wert 'print'.

Man wird für ein Layout auch nicht dermaßen viel JavaScript-Code benötigen, dass eine Datei unzureichend wäre!? Und bedenke: Module können Ihre eigenen JavaScript-Files mitliefern. Module können und sollen auch Bilder-Galerien, Slideshows, etc. sein - in einem Layout muss man sich nicht um diese Apps kümmern.

Möchte man aus irgendeinem Grund mehrere layoutspezifische CSS-/JS-Files einbinden, dann bleibt einem immer noch die Möglichkeit, mittels dem Filemanager im ACP die gewünschten Datein hochzuladen. Anschließend eben noch einen link/script-Tag im head der main.html setzen und schon wäre auch das Einbinden zusätzlicher Dateien gelöst.



Grüße,
Nico

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: WebRex CMS

Beitrag von Megger » 04.01.2012, 18:39:17

Hab schon öfters bemerkt, das Laien die CSS-Eigenschaften von Website-Teilen gerne auf verschiedene CSS-Files auslagern (bspw.: menu.css, footer.css, content.css) - so was kann dadurch schonmal nicht mehr passieren.
Ich lagere auch gerne aus, aber durch die htmlheader extension wird nachher trotzdem nur 1 File ausgeliefert. Ich finde mehrere Files einfach übersichtlicher
Da Windows Nutzer nun automatisch aufgefordert werden, Ihren IE-Browser upzudaten, sind auch keine Conditional Comments mehr Notwendig
In größeren Firmen wird da aber meistens nicht einfach so geupdatet, da oft auch noch andere Programme damit zusammenhängen und diese erstmal angepasst werden müssen! Kenne eine Firma, da war der IE8 schon lange draussen, da wurde dort erst flächendeckend auf IE7 geupdatet.


Aber ansich finde ich das Tutorial eigentlich recht gelungen, wobei ich die Code-Fragmente besser hervorheben würde, ich denke dadurch erhöht sich die Lesbarkeit
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast