source: branches/Plan_fuer_Jlog_2.0.txt @ 1696

Revision 1696, 5.0 KB checked in by driehle, 4 years ago (diff)

cleanup

Line 
1Plan fÃŒr Jlog 2.0
2=================
3
4
5UnabhÀngigkeit von einer MySQL Datenbank
6----------------------------------------
7
8Es sollen verschiedene Datenbanksysteme durch eine Datenbank Abstraktion unterstÃŒtzt
9werden. FÃŒr jede DB soll es eine Datei geben, die die Kommunikation zwischen DB
10und Jlog ÃŒbernimmt.
11
12DarÃŒber hinaus sollen nicht nur Datenbanken, sondern auch Flatfiles und XML-Files
13unterstÃŒtzt werden. Das wird wohl daraus hinauslaufen, dass man die DB Abstraktionsebene
14noch einmal abstrachieren muss und fÃŒr die einzelnen Bereiche auch extra wieder
15konkrete implementierungen macht.
16
17Beim normalen Download wird die MySQL Datei mitgeschickt und jeder der eine andere
18Speichermöglichkeit wÀhlt wird diese Datei durch die dazugehörige Ìberschreiben können.
19
20Ich könnte mir die Umsetzung so vorstellen wie es jetzt schon bei den Jlog Plugins implementiert
21ist. Man macht eine Vaterklasse die fÌr alle verschiedenen Kommunikationsmöglichkeiten
22einzelne Methoden zur VerfÃŒgung stellt davon werden dann die einzelnen Kindsklassen,
23fÃŒr jede Speichermethode (XML, MySQL, Flatfile, SQLite, etc.) von der Vaterklasse
24abgeleitet.
25
26Das schwierigste fÃŒr mich ist aber die Methoden so allgemein zu halten, dass auch
27Pluginentwickler diese sinnvoll nutzen können und sich dann nicht unnötigerweise auf
28nur ein System beschrÀnken, da sie eine andere FunktionalitÀt beim Lesen und speichern
29benötigen. Da brÀuchte ich noch ein paar VorschlÀge wie man das sinvoll umsetzt.
30
31
32Globale Blog-Informationen
33--------------------------
34
35Bisher werden alle Informationen ÃŒber das jeweilige Blog in der Datei /personal/settings.inc.php
36als Konstanten definiert. Konstanten haben sich aber als sehr unhandlich erwiesen,
37da man sie vor allem wÀrend der Laufzeit nicht Àndern kann, was schon einige Probleme
38bereitet hat. Außerdem kann man sie nicht schön gruppieren und schon gar nicht Infos
39von Plugins so speichern.
40
41Viel besser wÀre daher hier auch unabhÀngig zu werden. Es gibt hier genau so wie beim
42allgemeinen speichern der Daten weiter oben beschrieben mehrere möglichkeiten, also
43XML-Datei, Flatfile, eine PHP Datei mit einem Array (wird wohl auch das schnellste sein,
44da man das bei jedem Aufruf einer Seite alles braucht) oder sogar in der Datenbank.
45
46Ich tendiere hier zur PHP Datei mit Array, möchte aber das ganze dennoch davon unabhÀngig
47machen und lieber methoden zum Àndern und auslesen der Informationen. Alle Informationen
48sollen in einem global erreichbaren Objekt verfÃŒgbar sein, genau so wie die Methoden
49zum Àndern und auslesen derer.
50
51
52Plugin Behandlung
53-----------------
54
55Bisher ist die Pluginschnittstelle noch ziemlich unkontroliert. In Zukunft möchte
56ich das ganze besser strukturieren und mehr Angrifspunkte bieten. Aber auch die Verwaltung
57der Plugins muss besser werden, es muss zum Beispiel die Möglichkeit geben Ìber ein
58Webinterface Plugins ein- und auszuschalten, Informationen ÃŒber das Plugin einzublenden
59wie Version, Autor, Beschreibung, etc.
60
61Die Art und Weise, wie Plugins Code die XHTML-Ausgabe erweitern, ist IMHO deutlich verbesserungswÃŒrdig:
62Anstatt den kompletten Code durchzuschleifen und das abschließende div oder form durch den eigenen Code zu ersetzen, wÀre ein richtiger "EinhÀngpunkt" sehr von Vorteil.
63
64Weitere Überlegungen gibt es von mir und Dennis auf
65<http://jeenaparadies.net/webdesign/jlog/demo/2005/12/problem2#c61> und auf
66<http://jeenaparadies.net/bugs/task/111> sowie <http://jeenaparadies.net/bugs/task/114>
67
68
69Smarty als Templatesystem
70-------------------------
71
72Ich habe mich bisher noch nie wirklich mit Smarty befasst, es scheint mir aber ein gutes
73System zu sein. Es gab mittlerweile schon mindestens fÃŒnf Anfragen ob Jlog damit
74zusammenarbeiten kann, bzw. können wird. Zu anderen Templatesystemen gab es gar keine
75Anfragen.
76
77Der große Vorteil dabei ist, dass sich schon sehr viele Entwickler mit dieser Templateengine
78gut auskennen und schnell eigene Templates damit erstellen können.
79
80Das bisherige Konzept von Jlog mit <jlog:variablenname /> ist zwar einfacher, aber dafÃŒr
81absolut unflexibel. Es sollen komplett alle HTML ausgaben an Smarty ÃŒbergeben werden,
82auch die aus dem Admincenter. Dabei soll das ganze aber so funktionieren wie bisher,
83dass das Admincenter auf jeden Fall im Design der Seite erscheint und nicht wie bei vielen
84anderen Systemen mit einem völlig eigenen Design daherkommt.
85
86
87File- bzw. Mediaupload
88----------------------
89
90Außer Bilder sollen auch andere Dateien hochgeladen werden können. Dabei ist zu ÃŒberlegen,
91ob man einen allgemeinen Media-Uploader baut, oder das mit den Bilern so belÀsst wie
92bisher und noch einen anderen Uploader fÃŒr andere Dateien wie PDF, Word Dokumente, Flashfilme,
93mp3s usw. einbaut.
94
95
96BBCode Alternativen
97-------------------
98
99Nicht jeder ist so begeistert vom BBCode wie ich, deshalb wÃŒrde ich zwar als defaulteinstellung
100weiterhin Christian Seilers BBCode Klasse zum Parsen von Texteingaben behalten, aber auch
101die Möglichkeit geben andere Sachen wie reines HTML, einen RichText Editor, restructured Text, etc.
Note: See TracBrowser for help on using the repository browser.