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

WebRex 1.1 - kleines CMSystem

T!P-TOP

Mitglied
WebRex 1.1 - das neue kompakte CMSystem

Guten Morgen allerseits,

[Update]
mein CMSystem WebRex steht nun frei als Download zur Verfügung


Wie kann man WebRex Nutzer werden?
Auf der Website WebRex :: Home ist der Button "Downloaden" zu finden. Klickt man diesen an, startet nun sofort der Download von der Datei
WebRex - v 1.1.rar - es muss nun also kein lästiges Formular mehr ausgefüllt werden.

Auch das Installations Verzeichnis wurde komplett aktualisiert - ein neues, übersichtlicheres Design wurde nun eingeführt. Abgesehen davon ist die Installationsanleitung nun verständlicher formuliert.

Nachdem das CMS gedownloadet wurde, ladet alle Inhalt des Ordners WebRex - v 1.1 in das Root-Verzeichnis eures Webservers. Anschließend müsst ihr die index.php im Root-Verzeichnis über einen beliebigen Browser aufrufen und die weitern Schritte befolgen.

[/Update]


Der Aufbau des CMS ist sicher nicht Jedermanns Geschmack - wer es jedoch nützen möchte, kann Dies gern tun - bei Fragen oder Problemen helfe ich gerne. Entweder hier in diesem Thread Fragen stellen oder die WebRex Supportmöglichkeiten verwenden:
WebRex :: Support


Grüße
Nico
 
Zuletzt bearbeitet:
Werbung:
Ich hab's noch nicht installiert, aber ehe ich's vergesse: Irgendwas passt mit den Zeichensätzen glaube ich noch nicht so ganz. Viele deiner Templates sind kein korrektes UTF-8, die DB basiert aber scheinbar drauf.
 
Werbung:
Danke das Du das erwähnst. Zeichensatz müsste nun stimmmen - die .rar Datei wurde auch aktualisiert.

Grüße
 
Hallo,

also ich habe mir das CMS heruntergeladen, aber es nicht geschafft über den zweiten Installationsschritt hinaus zu gelangen. Obwohl ich alle Array-Elemente korrekt in der settings.php befüllt hatte, bekam ich die Meldung „Sie müssen alle Array-Elemente befüllen“. Nachdem ich durch etwas eigenen PHP-Code diese Hürde genommen habe, hing ich bei Step 3, da scheinbar zuvor nicht die Tabellen angelegt wurden. ...hab's dann aufgegeben.

Ich habe mir die PHP-Dateien etwas angesehen und finde, dass das CMS recht steif ist. Ich habe das Gefühl, dass man es nicht einfach durch weitere Klassen/Controller erweitern kann, sondern hierfür die ganze Website-Klasse umschreiben muss. Das CMS sollte zwar kompakt sein, aber ich würde mir mehr Flexibilität wünschen.

Das ACP kann ich nun leider wegen gescheiterter Installation nicht kommentieren.

Als „Seitenverwaltungssystem“ finde ich WebRex ausreichend.

Gruß
Vitus
 
Hi,
erstmal Danke für dein Feedback.
Die Installation verläuft bei mir Reibungslos, sowohl auf Linux als auch auf Windows Servern. Auch die Datenbanktabellen werden korrekt eingerichtet. Da kann ich also derzeit nicht weiterhelfen.

Dass das CMS steif ist würde ich jetzt nich so Ganz behaupten. Über den Admin Control Panel lassen sich HTML, aber auch PHP Seiten erstellen. Ich habe vor 2 Tagen eine CMS Erweiterung geschrieben - es handelte sich um ein Blogsystem. Ich konnte den Admin Control Panel innerhalb von einer Minute erweitern. Blogeinträge konnten danach über den ACP erstellt, editiert oder gelöscht werden. Der Blog hat auch tadellos funktioniert. An der Website Klasse muss man nichts umschreiben.

Hier mal eine kurze Erklärung:

Für eine Extension/Erweiterung benötigt man mind. 6 Datein. Davon sind 4 PHP Klassen, 1 Template mit der Dateiendung .phtml und eine Datei (.php), welche den Namen der Erweiterung trägt.
Will ich einen Blog integrieren, benötige ich z.B.:
- root-Verzeichnis
- blog.php (erzeugt Objekt von class.Blog.php und ruft Methoden dieses Objektes auf)
--- classes
--- class.Blog.php (Methoden zum speichern von Kommentaren oder zum anzeigen von Blogeinträgen)
--- admincp
----- templates
----- blogIndexView.phtml
----- modules
------- blog
--------- controllers
--------- indexController.php (=Eine Klasse)
--------- models
--------- blogModel.php (=Eine Klasse)
--------- views
---------
blogView.php (=Eine Klasse)

So, diese 6 Datein und schon hat man ein Blogsystem installiert. Nun noch im Admin Control Panel eine Webseite erstellen, zB mit folgenden Daten:

Webseitenname: blog
Websitentitle: Mein Blog
Webseitentypus: php
Webseitencontent:
PHP:
<?php 
include($_SERVER['DOCUMENT_ROOT']."/blog.php"); 
?>
Bei der Erweiterun müssen alle 4 Klassen von einer abstract Class geerbt bekommen.

indexController.php extends abstractController.php
blogModel
.php extends abstractModel.php
blogView.php extends abstractView.php
class.Blog
.php extends class.abstractPage.php


Über www.deineDomain.de/index.php?page=blog bekommt man nun die User Oberfläche vom Blog zu sehen. Man muss also keine Standard Datein im CMS umschreiben, um das CMS zu erweitern.
Was mir nicht so wirklich gefällt sind die abstrakten Klassen. Vorallem die class.abstractPage.php - die hat für den class.Blog.php z.B. nur einer brauchbare Methode, welche zur Verbindung zur Datenbank dient. Diese abstract Klassen werde ich in den nächsten Versionen immer wieder erweitern, damit aus denen irgendwann mal kleine Bibliotheken enstehen und umfangreiche Erweiterungen schnell geschrieben sind. Zudem werden diese Abstrakten Klassen Interfeaces implementieren.



Für weitere Testkaninchen bin ich sehr dankbar :-)

VG
Nico


/*================================= EDIT:
@Vitus: ich haben nun das Problem bzg. der Installation gefunden. Foglenden Pfad hast Du für WebRex verwendet:
http://localhost/projects/webrex

Die Installationsdatei index.php bindet die Settings immer folgendermaßen ein:

include($_SERVER['DOCUMENT_ROOT'].'/settings.php');

Da Du das CMS nicht im Root-Verzeichnis liegen hast, wird die settings.php nicht gefunden und somit kann diese if Bedingung wohl immer true ergeben:
PHP:
if ($config['root_path'] == 'http://www.ihreDomain.at/' || $config['db_name'] == '' || $config['db_user'] == '' || $config['db_password'] == '')
{
     //...Array-Elemente sind leer...
}
Mit den in der settings.php stehen Datenbankdaten wird auch versucht eine DB-Verbindung aufzubauen:
mysql_connect($config['db_server'], $config['db_user'], $config['db_password']);

Da die index.php keinen Zugriff auf die settings.php hat, wird keine DB Verbindung aufgebaut und somit werden die DB-Tabellen auch nicht aufgesetzt.

Das ist dann wohl die Schwachstelle vom CMS - nur wenn man es im Root Verzeichnis hat, funktionierts. Wenn ihr es testen möchtet, ladet das CMS in das Wurzelverzeichnis eures Server, dann dürfte es reibungslos laufen.
In der nächsten Version wird dann dies hoffentlich auch keine Problem mehr bereiten.

Grüße
Nico
 
Zuletzt bearbeitet:
Werbung:
Hier ist der Download vom Blog zu finden: WebRex :: WebRex

Habe auf meiner Website den Blog mal schnell installiert und paar Einträge gemacht:
WebRex - CMS - Index

Das ist die derzeitige Funktionsweise - ist jetzt zwar nicht so umfangreich, aber die Standard Blog-Funktionen sind gegeben.

Grüße


//EDIT: Im gedownloadeten Blog ordner befindet sich eine read-me Datei (Word-Dokument 97-2003). In dieser wird der Installationsablauf für den Blog beschrieben.
 
Zuletzt bearbeitet:
Danke für deine Rückmeldung Wäre schön, wenn dieser Fehler bis zur nächsten Version behoben werden würde, joa.

Gruß
 
Werbung:
Mit der nächsten WebRex Version (am 12.05.2011 erhältlich) kommt auch eine Online Demo hinzu, welche unter demo.webrex.at erreichbar sein wird.

Grüße

Nico
 
Werbung:
Hallo,

also ich habe WebRex nun nochmal installiert und in der neuen Version funktioniert es auch im Unterordner. *thumps up*

Das CMS ist sehr übersichtlich und ich konnte mich gut zurecht finden. Das Design empfinde ich als freundlich und bietet eine angenehme Arbeitsumgebung.

Was mir noch nicht klar ist, ist, wen du mit diesem CMS erreichen möchtest.
- Für einen Laien finde ich das System zu kompliziert. Ohne Vorkenntnisse in HTML und evtl. PHP lassen sich weder vernünftige Seiten verfassen, noch Templates bearbeiten. Ein WYSIWYG-JS-Editor wie TinyMCE wäre vielleicht eine gute Sache.
- Für einen Profi empfinde ich das CMS wiederum als zu 'machtlos'/'wenig'. Es fehlen mir Mehrbenutzerfähigkeit, Rechtesystem, View-Module für Sidebars, ...

Die Template-Engine ist mir zu simpel und vor allem SEO-technisch zu statisch. Beispielsweise sollten Webseiten niemals auf jeder Unterseite die selbe Meta-Description haben. Darauf lässt sich hier mit den Templates nur schwierig eingehen. Selbst Module können - so wie ich das sehe - hauptsächlich nur den Inhalt von {pageContent} beeinflussen.

Was mir auch noch ein Fragezeichen bereitet ist eine Einstellungsmöglichkeit für die Statistiken. Es lässt sich eine IP-Adresse angeben, um Clients von der Wertung auszuschließen. Jedoch ändert sich die IP alle 24h, somit müsste man ständig die Einstellung ändern. Sehe ich das falsch?

Beim Dokument-Upload würde ich noch Dateitypen wie *.doc, *.docx und *.pdf erlauben, da viele ihre Angebote via dieser Formate stellen möchten.

Nun aber genug Gemecker, ansich finde ich WebRex eine interessante Sache. :)

Gruß
 
Hi,

mehrer Dateiformate für den Dokumenten-Upload zu unterstützen ist sicher ne gute Sache - steht schon auf der To Do Liste.

Unter Einstellungen kann man lediglich einen Klienten aussschließen - und zwar sich selber. Diese Funktion habe ich von G. Analytics etwas abgekupfert - eine wirklich besser Variante ist mir bis jetzt nicht eingefallen. Und ja, hat man keine Statische Adresse, muss das natürlich öfters geändert werden. Ändert man die IP im Eingabefeld nicht, wird zwar der eigene Besuch mitprotokolliert, allerdings wird für eine IP lediglich eine Zeile in der Datenbank benötigt, da einfach die Seitenaufrufe hochgezählt (sprich geupdatet) werden.

Ich wollte anfangs nur Bedeutungsvolle Tags im Editor beim Drücken der Buttons ausspucken, damit halt mit möglichst wenig Spaghetti Elementen gearbeitet wird. Ich denke mal, es wird in Zukunft die Möglichkeit geben, zwischen reinen HTML Editor und Wyswig Editor hin und her zu springen.

Zudem wird bald mal ein Template Builder integriert werden. Unter dem Menüpunkt "Templates" wird es einen Button geben, der diesen Template Builder (entweder in JavaScript oder Flash (ActionScript) geschrieben) startet. Man kann verschiedene Websitebereiche (bspw. header, footer, sidebar) erstellen und diverse Eigenschaften dieser Elemente festlegen, wie zB.:
- Hintergrundfarbe
- Hintergrundbild
- Schriftfarbe
- Schriftgröße
- Schritart
- Breite
- Höhe
- eventuell margin und padding-Werte

Das CSS und HTML Template werden dann mit dem neu kreierten Template überspeichert. So kann ein Laie über ein Formular die komplette, semantische Grundstruktur einer Website in kurzer Zeit aufbauen.

Unter Websites wird es also eine Wysiwyg Editor geben, für die Templates den Template Builder. Damit dürfte dann auch Anfängern das Erstellen einer Website keine Probleme mehr bereiten.

Die Metatags habe ich leider Ganz vergessen - wie bzw. wo würdest Du die unterbringen? Ich dachte mir unter Webseite erstellen bzw. editieren. Einer Webseite kann man dann abgesehen vom Webseitenname, Webseitentitel und Webseitentypus noch eigene Meta-Keywords und eine Meta-Description auf n Weg mitgeben. So könnte jede Webseite individuelle Meta Eigenschaften haben. Im HTML Template müssten anschließend halt für Meta Tags und Meta Keywords ein Platzhalter geschaffen werden, aber ich denke nicht, dass das ein Problem darstellen sollte.

Für einen Profi empfinde ich das CMS wiederum als zu 'machtlos'/'wenig'. Es fehlen mir Mehrbenutzerfähigkeit, Rechtesystem, View-Module für Sidebars, ...
Da hast du vollkommen Recht. Diese Funktionen werden sicherlich noch implementiert werden, nur etwas später, da dies halt schon sehr umfangreiche Erweiterungen sind und genug Zeit in Anspruch nehmen.

Grüße
Nico
 
Werbung:
was man dir zugute halten muss ist, dass man sieht, dass du es wirklich versuchst.

mir sind direkt einige sachen negativ aufgefallen.

eval geht garnicht, langsam und braucht keiner.
in frontController::run validierst du den pfad den du includest nicht ausreichend.

wenn du wirklich vor hast das system auszubauen schau das du deinen code versionierst. ich empfehle für den anfang bitbucket.org
 
Danke erstmal für deinen Post freak.

Also die ersten 2 von dir angesprochenen Punkte kann ich jetzt nicht wirklich nachvollziehen.

Erstmal zur run Methode:
Bevor es überhaupt zum require() kommt, wird erstmal geprüft, ob das aufgerufene Modul bzw. dessen Controller existiert, ist dies nicht der Fall, wird das Script abgebrochen. Habe alle im frontController verwendeten Parameter in an die URI angehängt, ihnen verschiedene Werte gegeben und es kam zu keinem Fatal Error oder sonstigen Problemen. Die *Action Methode des Controllers wird ebenfalls nur dann aufgerufen, wenn sie existiert (method_exists).


So, nun zum Evil
WebRex :: Kontakt
Das Handling des Kontaktformulars wird ebenfalls mit eval() ausgeführt. Sicherheitslücken konnte ich da keine finden - gut, der Reguläre Ausdruck, den ich beim überprüfen der E-Mail verwende, ist ziemlich freundlich was das Angeben von falschen E-Mails angeht. Aber den kann ich ja noch erweitern. Ich sehe da auch nicht im geringsten ein Problem mit den Ladezeiten - oder ladet das Formular zu lange?
Ich wollte Nutzern die Möglichkeit bieten, kleine - mit Betonung auf kleine - Scripte über den ACP zu verfassen. Einen Shop, ein Forum, ein Blogsystem oder andere größere Applikationen über die eval Funktion auszuführen ist völliger Schwachsinn - aber das ist auch nicht Notwendig. Spätestens bis zu Version 2 wird ein Modul über den ACP installiert werden können. Webseiten ruft man bei WebRex mit domain.tld/index.php?page=Webseitenname auf. Module wird man mit dem Parameter module aufrufen können und diese werden nicht mit eval() verarbeitet werden.
Die eval() Funktion kommt wie gesagt nur dann zum Einsatz, wenn man eine Webseite mit dem Typus PHP erstellt. Theoretisch kann man auf den Websitetypus komplett verzichten (und immer html Webseiten erstellen), da es auch Module für einfachere Dinge geben wird, wie bspw. Kontaktformulare oder Gästebücher. Sollte aber einmal eine kleine PHP Aufgabe anliegen, für die es noch kein Modul gibt, dann arbeitet man halt mit eval - und wenn man davon Ahnung hat, wie man auf Benutzereingaben reagieren muss, wird es auch zu keinen Sicherheitslücken kommen.

Es kommt heute noch eine neue Version online, bei der es Änderungen gab, die die Flexibilität enorm steigern sollte. Zudem war der header inklusive Logo in den bisherigen Version sehr in die Höhe gezogen, was ein absoluter Platzverbrauch ist. Daher dachte ich mir, diesen etwas schmaler zu gestalten.

Würde gerne erfahren, welchen header ihr bevorzugen würdet:
1) der Alte: http://game.nicolas-pecher.com/images/pv2.png
2) der Neue: http://game.nicolas-pecher.com/images/pv.png

wenn du wirklich vor hast das system auszubauen schau das du deinen code versionierst. ich empfehle für den anfang bitbucket.org
Das habe ich aufjedenfall vor. Habe die Dokumenation mal überflogen und das was ich mitbekommen hab, hört sich toll an. Danke für den Tipp!
 
Werbung:
eval ist und bleibt evil :) ich denke ich kann mir sparen diese alle auf zu zählen, da reicht 2 minuten googlen.

Google

wenn ein model ein include, file_get_contents oder sonstwas mit IO ausführt ist ,es meiner Meinung nach wichtig, dass das model dies auch validieren kann. wir leben in einer welt wo wir klassen so schreiben, dass man sie wieder verwenden kann. im Umkehrschluss bedeutet das, dass du dich nicht darauf verlassen kannst, dass der pfad an einer anderen stelle schon validiert wurde. du kannst die aufgabe über ein interface an ein anderes model übergeben, mehr aber nicht :)

kleiner denkanstoss für dich:

mir sagt nicht zu, dass eine cms seite aus begrenzten elementen besteht. überlicherweise sind hier überschrift, content anzutreffen. eleganter gehen hier meiner meinung nach systeme wie kooboo und pimcore mit content um. insbesondere pimcore hat es mir angetan, vielleicht kannst du dich ja mal inspirieren lassen :)
Pimcore screencasts : pimcore - Enterprise Content Management Framework
 
Zurück
Oben