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