• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

WebRex

T!P-TOP

Mitglied
Diese Version (1.4.0) ist zwar noch nicht komplett fertiggestellt, doch für einen Beta-Test reicht`s für alle Fälle aus. Aber erstmal zum komplett neuen Aufbau:
Die bisherigen Versionen waren, wie bspw. Vitus im letzten Thread sagte, sehr steif, vorallem was den Frontend angeht. Daher wurde der gesamte Code neu geschrieben. In der neuen Version ist der Frontend genau so flexibel wie der Backend, da auch für den Frontend nun ein Front Controller eingesetzt wird, der den passenden Frontend-Komponenten-Controller und dessen Action-Methode aufruft.

Sowohl der Backend- als auch Frontendbereich werden in dieser neuen Version mit Komponenten zusammengebaut. Diese Komponenten kann man Problemlos entfernen, ohne damit andere Komponenten zu beeinträchtigen; doch es geht auch ungekehrt - neue Komponenten können nahtlos in das System integriert werden - keine Klassen oder Scripte müssen dafür mehr umgeschrieben werden.

Um folgende Funktionalitäten wurde WebRex erweitert:
- Mehrfachbenutzersystem
- Benutzergruppen, denen man auf bestimmte Komponenten Zugriff geben kann
- Profil bearbeiten: Benutzer können Ihre Daten (Benutzername & Passwort) ändern
- Templates: es können beliebig viele (X)HTML, CSS und JavaScript Templates über den Backend erstellt werden
- eval() Funktion wurde abegschafft - stattdessen muss für dynamische Seiteninhalte ein PHP Script angegeben werden, welches beim Aufrufen des Frontend ganz normal vom Parser verarbeitet wird.
- für statische Seiten(inhalte) wurde der tinyMCE-Wysiwyg-Editor mit sämtlich Plugins integriert
- Unter Statistiken lassen sich Logdaten von einem beliebigen Tag abfragen.
- Unter Statistiken wird in einer kleineren Box in % berechnet, welche Browser von den Besuchern am meisten verwendet werden. In der Box wird ohne zusätzlicher PHP-Library ein einfaches Diagramm erstellt, in dem die 6 wichtigsten Browser einen Balken erhalten.
- Unter Statistik findet man neben der Browser-Statistiken-Box eine weitere Box, die ein Eingabefeld beinhaltet. In dieses Eingabefeld kann man eine beliebige IP-Adresse eintragen - klickt man auf den darunter liegenden Submit-Button, werden die Geodaten (Staat, (eventuell) Bundesland und Stadt) dieser IP-Adresse ermittelt und ausgegeben.
- Metadaten (Keywords und Description) müssen beim erstellen einer Seite nicht mehr angegeben werden (Optional!). Sind keine angegeben, verwendet das System die Globalen Metadaten, welche man unter Konfiguration >> Admin Control Panel editieren kann.
- Für Templates gibt es nun 2 weitere Tags. Alle Tags haben eine andere Schreibweise.


Die WebRex-Tags:

{webrex:pageTitle}

{webrex:metaKeywords}

{webrex:pageDescription}

{webrex:content}

{webrex:baseUrl}

{webrex:template:Name_des_Templates}

{webrex:addAttribute:attributeName="Attribute Value":urlParameter==Value:alternativ}


Die letzten beiden Tags sind in dieser Version dazugestoßen. Erstmal zum WebRex-Template-Tag:

Man nehme an, man hat eine Foren- und eine Shopkomponente. Beide Komponenten verwenden allerdings unterschiedliche (X)HTML-Templates. Doch beide Templates haben bspw. die selbe Navigation. In der alten Version hätte man, sofern man einen Menüeintrag dieser Navigation ändern hätte wollen, beide (X)HTML Templates editieren müssen. In der neuen Version schafft der WebRex-Template-tag da Abhilfe. Anstatt den Code für die Navi in die beiden Templates reinzuschreiben, setzt man in beiden Templates den Template-Tag mit folgendem Parameter:

{webrex:template:navigation}

Nun noch ein (X)HTML Template erstellten mit dem Namen "navigation" und schon wird praktisch in beide Templates das navigation-Template inkludiert. Ändert man nun den Code im navigation-Template, so wirkt sich diese Änderung natürlich auch auf alle Templates aus, die dieses Template einbinden.


Der 2. neue WebRex-Tag wurde vorallem deswegen integriert, um einen "Aktuellen"-Link zu simulieren. Dieser Tag trägt den Namen addAttribute und enthält 3 Parameter (alle 3 Parameter müssen angegeben sein, damit das Templatesystem diese ausfindig macht).
Der erste Paramter gibt das Attribute (und dessen Wert an), welches ins Template egschrieben werden soll. Der 2. Parameter ist der Condition-Parameter. Damit gibt man an, dass ein URL-parameter mit einem bestimmten Wert vorhanden sein muss, damit das Attribut gesetzt wird. Der letzte Parameter macht im Prinzip nur für die Startseite einen Sinn.

Beispiel für den Einsatz:

HTML:
<ul>
    <li><a href=""{webrex:addAttribute: class="actual":page=index:index}>Home</a></li>
    <li><a href=""{webrex:addAttribute: class="actual":page=projects:brauchManNicht}>Projekte</a></li>
    <li><a href=""{webrex:addAttribute: class="actual":page=contact:brauchManNicht}>Kontakt</a></li>
</ul>
class="actual" wird bspw. für den Home-Link nur dann ausgegeben, wenn $_GET['page'] == home der Wahrheit entspricht, oder wenn kein $_GET['page'] vorhanden ist (deswegen der letzte parameter "index", der angibt, das es sich hierbei um die index-Seite der "pages"-Komponente handelt).



Ein großes Dankeschön an die, die das CMS testen und mir beim Auftreten von Fehlern hier Bescheid sagen. Wie immer, freue ich mich auch über Kritik, will ja mein Projekt stets verbessern :)
Eine Komponente ist übrigens noch nicht fertig entwickelt - der Installer (darüber lassen Sie in Zukunft Komponenten und Templates installieren).

Den Datei Upload, die Benutzer- und die Profil-Komponente sind für den Demo Account nicht zugänglich, wieso is glaub ich klar ;)

Backend: http://www.nicolas-pecher.com/admincp/
Username: Demo
Passwort: demo


Grüße
Nico
 
Zuletzt bearbeitet:
Werbung:
So, jetzt fällt mir gerade auf das die Logindaten nicht ganz stimmen.

Username: Demo
(klein geschrieben) Passwort: demo
 
Es wurde heute eine neue Komponente für den Backend entwickelt: Privates Nachrichtensystem. Für das Verfassen einer Nachricht steht einem wieder der TinyMCE Editor zur Verfügung, allerdings mit wesentlich wenigern Plugins & Buttons. Mit dem Demo Account sollte sich die Komponente nun auch testen lassen. Für Rückmeldungen bin ich dankbar.
 
Werbung:
Die neue Version steht nun zum Download zur Verfügung: WebRex :: Startseite
Hab jetzt noch den GNU GPL Vermerk in jeder Datei hinzugefügt, der ja Anfangs gefehlt hatte.


Hier schonmal die geplanten Features für die nächste Version:
- Mehrsprachigkeit (Englisch und Deutsch, aber mit der Möglichkeit über den Installer neue Sprachpakte zu installieren)
- Upload Manager mit einer Ansicht wie z.B. in FileZille & Mehrfach-Upload möglich
- Bilder können mittels der API vom Foto-Pixlr-Editor über den Admin Control Panel bearbeitet und auch direkt am Server wieder gespeichert werden.
- Die Rechte für Benutzergruppen werdenspezifiziert; man kann entscheiden, welche Actions ein Nutzer innerhalb einer Komponente benutzen darf (bspw. Edit-Formular sehen, Edit-Formular abschicken, Seite löschen, Formular für neue Seite sehen, Formular für neue Seite abschicken).
- Sessions werden in der Datenbank gespeichert
- auf der Benutzerliste eine neue Spalte, in der man den Benutzerstatus eines Users findet (eingeloggt/ausgeloggt)

Grüße
 
Den Demo Account habe ich damals auf meiner eigenen Website angelegt - da diese aber mittlerweile über Inhalt verfügt, und ich nicht möchte, dass mir diesen jemand raushaut, hab ich den Demo-Account auch entfernt. Ich werde heute aber noch eine eigene Demo-Subdomain anlegen.
 
Werbung:
Sieht doch gut aus.

Einzig die Meta-Description: wird nicht richtig kodiert und ist wohl statt UTF-8 Iso 8859
 
Merkwürdig. Die DB-Felder sind alle auf utf8-unicode gestellt, auch die Kodierung der SQL-Datei ist korrekt auf UTF-8. Auch die Verbindung zwischen PHP und MySQL ist auf UTF-8 - bin da derzeit ziemlich ratlos.

Edit: wieso die Umlaut einer Seite nicht richtig dargestellt werden, liegt daran, dass der mata Tag http_equiv fehlt, in dem man ja als zeichensatz UTF-8 wählen kann. Wieso die Meta-Des. nicht stimmt, kann ich allerdings noch nicht sagen.



Aber woher kommt das Menü?
Ja, gell, so simple, das man gar net drauf kommt :D

Es gibt kein Menü-Modul wie in Joomla, Typo3 oder anderen CMSystemen. Ich wollte eben keinerlei HTML-"System"-Code vorgeben - zB wird in Joomla!, sofern ich mich nicht irre, bei jedem Menü eine UL angelegt, die list-Elemente beinhalten neben Anchors auch noch spans. Zudem wird ein Div-Container um die UL gelegt - diese ganzen Elementen benötigt man aber standardmäßig nicht für ein Menü - zumindest benötigt man nicht alle davon. In WebRex legt man ganz einfach die UL Liste per Hand im HTML Template an. Damit nimmt man zwar einem Webentwickler nicht gerade viel arbeit ab, solange ich aber keine komfortable Möglichkeit gefunden habe, wie man einerseits ein Menü über das Backend erstellen kann, anderseits aber keinen HTML-Code vorgibt, wird einem diese kleine Umständlichkeit nicht erspart bleiben.
Die Arbeiten an einer neuen Version haben aber bereits begonnen - abgesehen von einer neuen Struktur und einem neuen Design wird dieses Mal WebRex auf einem Framework aufbauen. Da hätte ich auch gleich eine Frage an alle leser dieses Threads:

Für mich kommen derzeit zwei FWs in Frage:
Symphony2 oder Zend.

Welches würdet Ihr von den beiden wählen? Oder vielleicht ganz ein anderes?

Grüße
Nico
 
Werbung:
Merkwürdig. Die DB-Felder sind alle auf utf8-unicode gestellt, auch die Kodierung der SQL-Datei ist korrekt auf UTF-8. Auch die Verbindung zwischen PHP und MySQL ist auf UTF-8 - bin da derzeit ziemlich ratlos.
Nur der HTTP-Header nicht.
Ja, gell, so simple, das man gar net drauf kommt :D

Es gibt kein Menü-Modul wie in Joomla, Typo3 oder anderen CMSystemen. Ich wollte eben keinerlei HTML-"System"-Code vorgeben - zB wird in Joomla!, sofern ich mich nicht irre, bei jedem Menü eine UL angelegt, die list-Elemente beinhalten neben Anchors auch noch spans. Zudem wird ein Div-Container um die UL gelegt - diese ganzen Elementen benötigt man aber standardmäßig nicht für ein Menü - zumindest benötigt man nicht alle davon. In WebRex legt man ganz einfach die UL Liste per Hand im HTML Template an.
Was heißt von Hand? Für jeden Link? Das ist aber eine essentielle Funktion eines CMS, dass es aus den Inhalten Menulisten erstellen kann. Im Prinzip reicht dazu ein ul Liste mit Links in den einzelnen Listeneinträgen. In Wordpress werden noch ein paar Klassen erzeugt, aber du kannst natürlich auch die Liste völlig frei nach deinen Vorstellungen zusammen bauen.
 
Was heißt von Hand? Für jeden Link? Das ist aber eine essentielle Funktion eines CMS, dass es aus den Inhalten Menulisten erstellen kann. Im Prinzip reicht dazu ein ul Liste mit Links in den einzelnen Listeneinträgen. In Wordpress werden noch ein paar Klassen erzeugt, aber du kannst natürlich auch die Liste völlig frei nach deinen Vorstellungen zusammen bauen.

In der nächsten Version wird das folgendermaßen gehandhabt:
Unter einem neuen Menüpunkt namens "Menüs" wird man neue Menüs anlegen können - diesen Menüs kann man anschließend Menüpunkte verpassen - für einen Menüpunkt wählt man dann ganz einfach eine Seite aus - vom Prinzip her gleich wie in Joomla - jedeoch mit folgendem Unterschied: beim Erstellen eines Menüs wird ein .phtml Template angelegt. Unter Templates kann man dieses dann editieren. Die unerfahrenen Leute binden dieses Template einfach in Ihr Base-Template ein und schon haben Sie ihre Navi, ohne jeglichen Code zu schreiben. Zusätzlich hat man aber auch die Möglichkeit, ein Menütemplate zu editieren und somit den Systemcode sehr einfach über das Backen abzuändern.
 
WebRex 1.5.0 ist nun online. Download: Download


Demo: http://test.webrex.org/admincp
Username: Demo
Password: Demo


Was hat sich geändert?
Es gibt nun Menus, welche Menü-Links beinhalten können. Menülinks können auf interne Seiten (WebRex-Seiten) oder externe Seite (zB: google.de) verlinken. Zudem kann man für Menü-Links den Ajax-Content-Loader aktivieren. Dadurch würde der Inhalt der Seite, auf die der Menü-Link verlinkt in den Inhaltsbereich der Seite geladen werden - sprich nicht die ganze Seite wird mehr neu geladen, sondern lediglich der Inhalt. Für das Reinladen des Contents kann man zwischen...
-> keinen Effekt
-> fadeIn & fadeOut
-> und slideUp & SlideDown
...wählen.

Abgesehen von den Menülinks wurde ein Filemanger integriert. Über diesen lassen sich Multi-Uploads durchführen und Verzeichnisse erstellen (und natürlich auch löschen). Root-Verzeichnis des Uploads ist pfad_zu_webrex/upload.

Wie schon erwähnt, können Menülinks auf (WebRex-)Seiten verweisen - diese geben folgende Dinge an:
-> sind sie öffentlich zugänglich? Falls nein, kann ausgewählt werden, welche Bentuzergruppen Zugriff auf deren Inhalt haben.
-> Metadescription, Metakeywords und Meta-Robots
-> Seitentitel und Seitentenplate
-> Seiteninhalt: dieser wird über einen "Generator" zusammen gebaut. In WebRex gibts es zwei Arten von Inhalten: Artikel und Module. Diese Inhalte können beim Seiteninhaltsgenerator einer Seite verwendet werden. 3 Seitenstrukturen sind möglich: 1 spaltig, 2 spaltig und 3 spaltig.
Eine Seite kann über beliebig viele Module, Artikel und Arikel-Kategorien verfügen und diese kann man per Drag and Drop in einer gewünschten Reihenfolge anordnen. Falls man eine Artikel-Kategorie als Seiteninhalt verwendet, hat das den selben Effekt wie ein Blog: alle in dieser Kategorie befindlichen Artikel werden auf der Seite ausgegeben und nach Datum (DESC) sortiert.

Für Module und Templates gibts eine API. Module und Templates müssen in eine .zip Datei verpackt werden, anschließend können Sie über das Backend von WebRex installiert werden. Genaueres findet man auf: Documentation

Das Rechtesystem für Benutzergruppen ist äußerst fein - so kann jede(!) mögliche Admin-Control-Panel-Aktion für eine Benutzergruppe gesperrt oder freigegeben werden.

Wie auch in der letzten Version gibt es im Backend wieder ein Nachrichtensystem, worüber sich Member Nachrichten schreiben können.

Fall jemand mehr wissen möchte, sollte er sich am Besten die Demo ansehen.

Grüße
 
Werbung:
Username: Demo
Password: Demo

?
da stimmt was nicht, weil man sich mit diesen Daten nicht einloggen kann.

!@#?
Habs rausgefunden, das Passwort: demo muss klein geschrieben werden.


Ist bestimmt ein wahnnsinsaufwand, so was auf die Beine zu stellen. Ich frage mich nur wozu?
Es wird nirgends deutlich wozu ich das brauche, und was es kann. Du solltest den Nutzen auf der Startseite anpreisen.
Das Problem haben viele CMS, tolle Funktionen und super Backend, aber warum ich gerade dieses CMS auswählen sollte wird mir immer nicht klar.
Ich habe schon einige getestet und 99% sind einfach nicht zu gebrauchen. Sie produzieren überflüssigen Code, man muss zu viel lernen und die Administration ist unzureichend.

Ich will das jetzt nicht von Deinem CMS behaupten, dafür kenne ich es ungenügend, aber es fehlt halt das entscheidende Kaufkriterium, warum man dein CMS anderen vorziehen sollte.

Ich bin gerade im Menüeditor und weiss nicht weiter. Das reicht schon um es eigentlich wieder von der Platte zu fegen. Ich hoffe du verstehst was ich meine.
Wir sind hier alle mit der Materie vertraut und können mit Fehlern umgehen und sie notfalls im Quellcode korrigieren, ein normaler Anwender kann das nicht und fühlt sich gnadenlos überfordert.
Nehmen wir zum Beispiel Wordpress. Technisch eine Katastrophe, total überladen und ich glaube nur für die Index.php sind 27 Datenbankaufrufe notwendig. Da sagt jeder, der sich mit der Materie auskennt, Oh Mann was ist das denn. Der normale Anwender weiss aber nichts davon und erstellt damit seinen Blog in 5 Minuten und hat ein tolles Erfolgserlebnis.

Das wollte ich dir nur mal mit auf den Weg geben, damit du den DAU nicht aus den Augen verlierst.
Ach wenn ich schon dabei bin. Such dir einen Engländer zum Freund und lasse von dem mal deine englischen Texte überarbeiten. Das schafft nur ein Muttersprachler glaub´s mir.

Ansonsten - super Arbeitsleistung. Chapeau.
 
Zuletzt bearbeitet von einem Moderator:
Ich frage mich nur wozu?
Das CMS haben wir anfangs nur in unser Webdesign-Agentur verwendet, denn es kamen halt Wünsche auf, die andere CMSysteme nicht erfüllen konnten.
Bspw. wurde unnötiger Code generiert, teilweise waren Templates/Themes über ein Backend nicht editierbar, das Rechtesystem war zu mickrig, das CMS war ein riesen Brocken und für einen Grafiker einfach zu kompliziert aufgebaut oder aber das PHP-Fundament war schrott. Es gab genug Gründe, um auf ein eigenes zu setzen. Das CMS wird von Version zu Version umfangreicher und simpler (vorallem der Bereich für die Kunden).

Manch einer fand das CMS auch ansprechend, weshalb das CMS halt unter GNU GPL gestellt wurde. Beantwortet das das Wozu? :)



Such dir einen Engländer zum Freund und lasse von dem mal deine englischen Texte überarbeiten. Das schafft nur ein Muttersprachler glaub´s mir.
...na immerhin hab ichs versucht :mrgreen:
 
Das erklärt natürlich alles. :mrgreen:

Hast dir mit der Übersetzung viel Mühe gegeben und ist auch verständlich, klingt halt nur als hätte es ein deutscher Muttersprachler auf englisch geschrieben.
 
Werbung:
Also wenn du das echt mit google translate übersetzt hast, dann staune ich schon, wie weit die bei Google schon sind.
 
Für die geplante Version 2.0 steht einiges an - eine Menge neuer & innovativer Funktionen sind geplant. Für die Entwicklung sind wir noch auf der Suche nach einem PHP-Entwickler. Interessenten können sich per E-Mail, über PN (html.de) oder über das WebRex-Forum melden.

Mit was sollte der PHP-Entwickler vertraut sein?

- FrontController
- (H)MVC
- Dependency Injection
- Composite

- CSS3
- HTML5


Meine E-Mail: [email protected]
 
Zuletzt bearbeitet:
Werbung:
Zurück
Oben