You are browsing the archive for Joomla!.

Avatar of Florian

by Florian

J!-Gästebuch, Teil 1: Der Aufbau von Joomla! 1.5 Komponenten

6. Februar 2008 in Joomla!

Nun zum Teil 1 meiner kleinen Serie. Beim Aufbau von Joomla! 1.5 Komponenten orientiere ich mich an den Dateien des vierten “Hello World”-Beispiels. Hier die Struktur, die in der ZIP-Datei enthalten ist:

admin/controllers/hello.php
admin/models/hello.php
admin/models/hellos.php
admin/tables/hello.php
admin/views/hello/tmpl/form.php
admin/views/hello/view.html.php
admin/views/hellos/tmpl/default.php
admin/views/hellos/view.html.php
admin/admin.hello.php
admin/controller.php
admin/install.sql
admin/uninstall.sql
site/models/hello.php
site/views/hello/tmpl/default.php
site/views/hello/view.html.php
site/controller.php
site/hello.php
hello.xml

Das sind schonmal sehr viele Dateien, oder? Die ganzen leeren index.html-Dateien habe ich nicht eingetragen. In jedem Verzeichnis sollte aus Sicherheitsgründen immer eine leere index.html-Datei sein, damit sichergestellt ist, dass das Verzeichnis nicht durchsucht werden kann.

Die Komponente ist grundsätzlich mal in zwei Verzeichnisse aufgeteilt: site und admin. Man könnte auch Frontend und Backend sagen. Das Verzeichnis site enthält die Dateien, welche für die Website benötigt werden. Unter admin befinden sich alle Dateien, die zur Verwaltung im Administrator verwendet werden. Wichtig ist, dass z.B. Bilder, die in der Website und im Administrator verwendet werden im site Verzeichnis liegen, da das administrator-Verzeichnis aus Sicherheitsgründen durch ein zusätzliche Webserver Authentication (siehe .htaccess) geschützt sein sollte.

site/hello.php
im site-Verzeichnis finden wir eine hello.php. Diese Datei ist der Einstieg für Joomla! in die Komponente. Wenn die Komponente gaestebuch heißt, dann muß diese Datei dementsprechend gaestebuch.php genannt werden. Der Dateiname setzt sich immer aus dem Namen der Komponente und der Erweiterung .php zusammen: <Komponente>.php.

site/controller.php
Im gleichen Verzeichnis befindet sich noch unserer Haupt-Controller (controller.php). Diese Datei bearbeitet die Benutzereingaben (Bei Websites die Anfragen an den Webserver), ändert die Daten im Model und gibt das Ergebnis an das Ausgabescript (View) weiter.

site/models/hello.php
Zusätzlich gibt es noch den Unterordner models, indem sich die Datenmodelle befinden. Im “Hello World”-Beispiel gibt es nur ein Datenmodell.

site/views/hello/view.html.php
Das Verzeichnis views enthält zusätzlich für jede Ansichtsmöglichkeit ein Unterverzeichnis. Im admin-Verzeichnis gibt es beispielsweise eine Übersicht alles “hellos” und die Detailansicht “hello”. Die Datei view.html.php erhält die notwendigen Daten vom Controller und gibt diese an das Template weiter.

site/views/hello/tmpl/default.php
Das Template enthält den HTML-Code und gibt die Daten aus. Dort befindet sich auch die Darstellungslogik (z.B. for-Schleifen um mehrere Datensätze auszugeben).

admin/admin.hello.php
Das admin-Verzeichnis hat fast die gleiche Struktur. Nur die Einstiegsdatei heißt in diesem Fall admin.hello.php. Beim Gästebuch heißt die Datei admin.gaestebuch.php. Der Aufbau des Dateinamen sieht daher wie folgt aus: admin.<Komponente>.php.

admin/install.sql und admin/uninstall.sql
Zusätzlich befinden sich noch die SQL-Dateien im Admin-Verzeichnis. Diese Dateien enthalten (wie die Erweiterung .sql schon vermuten läßt) den SQL-Code zum erzeugen bzw. zum Löschen von Tabellen in der Datenbank.

hello.xml
Zu guter Letzt haben wir noch die XML-Datei. Der Dateiname setzt sich ebenfalls wieder aus dem Namen der Komponente und der Erweiterung .xml zusammen: <Komponente>.xml. Dort sind Meta-Informationen und auch die Installations bzw. Deinstallations-Anweisungen für Joomla! enthalten.

Im nächsten Teil werde ich mich mit der Datenstruktur und des Models beschäftigen.

Inhaltsübersicht:

Teil 1: Der Aufbau von Joomla! 1.5 Komponenten
Teil 2: Datenstruktur und Funktionen des Gästebuchs
Teil 3: Die Einträge ausgeben
Teil 4: Neue Einträge eintragen
Teil 5: Die Administration der Einträge
Teil 6: Die Sicherheit überprüfen

Avatar of Florian

by Florian

Enwicklung von Joomla! 1.5 Komponenten

3. Februar 2008 in Joomla!

Ich habe mir jetzt auf meinem Testserver das neue Joomla! 1.5 installiert. Das ganze Web Content Management System wirkt jetzt viel smarter als früher.

Der Aufbau von Komponenten hat sich jedoch stark verändert. Wie weit jetzt die populären Komponenten Joomlaboard oder auch Community Builder installiert werden können, ist mir leider nicht klar. Bisher gibt es nur sehr wenige Joomla! 1.5 Komponenten. Aber das macht nichts, ich kann ja auch ein wenig programmieren ;-)

Aber erstmal muß ich mich dazu in die Struktur der Komponenten einarbeiten. Um Joomla! 1.5-Komponenten zu programmrieren, muß man erstmal das Architekturmuster Model-View-Controller (zu Deutsch: Modell-Präsentation-Steuerung, kurz MVC) verstehen. Grob habe ich eigentlich schon seit langen versucht, die Programmierlogik und die Ausgabe zu trennen – wobei ich dies aus Faulheit meist in einer Datei gemacht hatte. Oben war die Datenbankabfrage und die Logik und im unteren Bereich der Datei die komplette Ausgabe. Aber bedenkt bitte, dass “Ausgabe” nicht bedeutet, dass dort kein PHP-Code stehen darf. Es gibt auch eine Ausgabelogik (meist einfache Kontrollstrukturen wie if oder while, for…), die natürlich in der Ausgabe stehen sollte. Aber mal wieder zurück zum MVC.

Im Joomla! Developer Network habe ich (nachdem ich ein wenig gesucht hatte…) ein kleines “Hello World”-Beispiel gefunden. An diesem Beispiel kann ich mich jetzt orientieren. Man braucht für eine Komponente mindestens fünf Dateien (die leeren index.html für jedes Verzeichnis nicht mitgerechnet).

Als erstes werde ich wohl erstmal wieder ein Gästebuch programmieren – ähnlich wie ich dies im März 2003 angefangen hatte ;-) . Jedoch werde ich mich (weitesgehend) an die Joomla!-Entwickler-Standards halten – vorallem, was die Sicherheit angeht. Wobei ich beim Einrücken von Code gerne den Tab verwende und eigentlich nicht mit Leerzeichen als Zeileneinzug arbeite, aber vermutlich kann man das im UltraEdit auch irgendwo einstellen ;-)

Folgende Aufteilung habe ich mir dazu überlegt.

Teil 1: Der Aufbau von Joomla! 1.5 Komponenten
Teil 2: Datenstruktur und Funktionen des Gästebuchs
Teil 3: Die Einträge ausgeben
Teil 4: Neue Einträge eintragen
Teil 5: Die Administration der Einträge
Teil 6: Die Sicherheit überprüfen

Avatar of Florian

by Florian

Webdesign, Barrierefreiheit und Suchmaschinen

11. Januar 2008 in Joomla!, Wordpress

Ich befürchte fast, dass ich unter dem Begriff “Webdesigner” etwas anderes verstehe, als viele andere in der Branche. Für mich gehört zur Tätigkeit des Webdesigns auch die Erstellung eines barrierefreien HTML-Codes. Wobei wohl der “klassische” Webdesigner wohl eher als “Homepage-Maler” bezeichnet werden könnte.  Klar ist es mal praktisch, eine Website zu malen – als Grobentwurf oder Skizze. Aber die Umsetzung muß trotzdem auf der Basis von HTML bzw. XHTML erfolgen. Mir wurde mal gesagt, dass “Webdesign und Suchmaschinenoptimierung” eine ungewöhnliche Kombination wäre. Aber das gehört heutzutage zusammen. Zumindest meiner Meinung nach. Es macht keinen Sinn, eine Website zu designen und diese vor Suchmaschinen zu verstecken. Gute Content Management Systeme bieten schon in der Grundinstallation (oder notfalls mit verfügbaren Erweiterungen) grundlegende Suchmaschinenoptimierung (z.B. Suchmaschinenfreundliche URLs) an. Schlechte tun (wenn überhaupt) nur die URL-Trennzeichen (?, & und =) durch Kommatas ersetzen oder haben sogar noch ein /system/show.php3?bla=blubb in der URL… Und das ist seit Jahren eigentlich Standard. Wer ein Content Management System für seine Website sucht, sollte daher umbedingt darauf achten, dass diese grundlegende Suchmaschinenoptimierungen drin haben, in der Lage sind fehlerfreien HTML-Code zu erzeugen (z.B. & durch &amp; zu ersetzen) und auch einen hohen Verbreitungsgrad (bzw. viele Agenturen, die sich damit auskennen) haben. Dadurch kann man schlechte Agenturen schnell nur bessere ersetzen und natürlich auch auf einen großen Fundus von fertigen Applikationen zugreifen (ohne alles selber entwickeln zu müssen). Deswegen verwende ich Joomla! und WordPress. Auch würde ich mich gerne mal in Typo3 einarbeiten.

Mir wurde eine lustige Geschichte zum Thema Webdesigner und Suchmaschinenrobot zugeschickt, die ich jeden, der im Internet gefunden werden will, wärmstens empfehlen kann.