|
piratos
|
 |
« am: 30. Juni 2010, 11:27:37 » |
|
Ein richtiges Portal besteht aus mehreren Teilen:
Im Backend:
Adminbereich Useradminbereich
Im Frontend:
Normaler Besucherbereich Interaktive Besucherbereiche (ohne User zu sein) Interaktive Userbereiche (erweiterte Möglichkeiten für eingetragene User)
Annahme:
Es besteht ein ungeheurer Bedarf an Portalsystemen, die einen individuellen Bedarf decken.
Problem und Ansatz:
Bei der Analyse bekannter bestehender Portalsysteme offenbarten sich erhebliche Schwächen. Es gibt erhebliche Schnittmengen zwischen Lib's und Klassen aller Art und dem Front- wie auch den Backends. Damit werden jeweils Teile die nur im Frontend bzw. nur im Backend benötigt werden miteinander und untrennbar vermixt. Das aber bedeutet - alles wird deswegen schlechter wartbar und noch schlechter individuell anpassbar. Eben Modulesysteme haben diese Schwächen und der wesentliche Schwachpunkt eines solchen Systems ist der Umstand das entweder Teile mitgeschleppt werden die man nicht benötigt oder es fehlen Teile die nur schwer "anzuflicken" sind.
Kein einziges System verwendet wirklich einen Dispatcher, der zentral die Aufgaben annimmt und verteilt. Die meisten Systeme rufen ihrerseits eine komplette Aussenlogik auf die wirderum jeweils alles was benötigt wird lädt, statt vom Dispatcher diese Teile laden zu lassen und die externe Funktion zu includen.
Externe eigenständige Scripte zu laden heisst ja das man diese eigenständig mit Parametern und Request's versorgen muss. Kein einziges System hat da eine zentrale Versorgung wie sie beim Einsatz eines Dispatchers und include das Aktionsscriptes möglich wäre, dabei ist das eine ganz einfache Sache wenn man sich eine Normierung einfallen lassen würde. Eine realisierte Normierung besteht tatsächlich nur aus vier Scriptzeilen, liegt völlig zentral und fängt alles und das auch noch gefiltert (XSS!) auf und weist sie direkt an Variable zu, die von den include Scripten direkt verwendet werden kann. Da entfällt also jeglicher Overhead für solche Dinge.
Die Schnittmengen Frontend/Backend zu Libs in einem Testsystem besteht lediglich in den Teilen PiDatabase, Sessions,TPLE und der config. Sprachdateien werden über TPLE und XML direkt angesteuert. Die Sprachdateien im Frontend wie auch Backend sind getrennt. Die Scriptlänge des Dispatchers im Adminbereich beträgt nur 80 Zeilen und erledigt komplett die Login- und Rechteabprüfung, die Zuweisung von Variablen, die Steuerung von Sprachdateien und den notwendigen Aufruf der Headers - die aus praktischen Gründen geteilt sind um nach Usereinstellungen und Rechten z.B. Javascript ein-oder ausblenden zu können, das Menü in Abhängigkeit von Rechten, den Aufruf des Aktionsscriptes und der Footer, die ebenfalls geteilt sind um z.B. Javascripte die vor </body> einzusetzen wären schalten zu können.
Die Aktionsscripte können nicht direkt aufgerufen werden. Die Aktionssteuerung für die Menüs und den dazu notwendigen Rechten liegen extern und sind somit extrem einfach ergänzbar.
Tatsächlich hat sich ein solches System, das ich bei mir unter dem Bastelnamen PowerPortalus laufen habe, als enorm effizient heraus gestellt. Standardkomponenten können - wenn man sich an das Normierungssystem hält, einfachst verändert werden und Sonderkomponenten nach Bedarf ebenso einfach erstellt werden.
Ziel der Übung ist es ein System zu schaffen mit dessen Hilfe ein komplettes und vor allem individuelles Portalsystem in wenigen Arbeitstagen zu schaffen ist. Gewerblichen Anwendern (und damit meine ich mehr jene die einen solchen Job ausführen sollen) sollte ein Werkzeug zur Verfügung gestellt werden, das ihnen wirtschaftliche Vorteile wie auch Vorteile im Wettbewerb bietet.
|