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
ageTitle}
{webrex:metaKeywords}
{webrex
ageDescription}
{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:
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
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

{webrex:metaKeywords}
{webrex

{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>
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: