Geschrieben von Christian Schnettelker

Schlagwörter: ,

Joomla, Module und Komponenten

Für ein neues Projekt habe ich mir heute den Tag mit dem Thema „Programmierung von Modulen und Komponenten für Joomla“ um die Ohren geschlagen, ist ja auch mal schön.

Für besagtes Projekt ist eine gewisse Programmierung unabdingbar, da die geplante Seite später Produkte als Liste anzeigt, wobei die Produktdaten dann vom Inhaber selbstständig erstellt, gepflegt und auch wieder gelöscht werden sollen. Das ginge zwar theoretisch auch „händisch“ im Joomla-Backend, wäre aber zu viel kompliziert für den Anwender.

Definition

Ein Joomla-Modul ermöglicht es, an einer bestimmten Position („Modulposition“) innerhalb des Layouts etwas auszugeben. Beispiel: ein Menü ist in Joomla immer ein Modul, in diesem Falle wird die grundlegende Funktionalität mitgeliefert, kann aber überschrieben werden. Module greifen auf die Datenbank idR nur lesend zu.

Eine Joomla-Komponente geht weiter, das CMS wird hierdurch um neue Funktionen erweitert. Beispiel: Forum, eine Bildergalerie oder Newsletter-System. Komponenten können innerhalb gewisser Grenzen die Datenbank auslesen als auch Einträge ändern oder löschen.

Lösungsansatz

Vorab hatte ich mir die folgende Aufteilung überlegt: dass Modul soll die Produktdaten (Bilder, Beschreibung etc.) aus der Datenbank auslesen und innerhalb des Layouts anzeigen. Zur Verwaltung der Produkte wird im Backend eine Komponente eingesetzt, mit deren Hilfe Einträge erstellt, editiert und gelöscht werden können.

Der spätere Benutzer hat dann nur auf diese Komponente Zugriff, damit nicht unabsichtlich die gesamte Joomla-Installation zum Teufel geht. Soweit, sogut.

Bevor Sie starten…

Mir liegt es fern jemanden davon abzuhalten, es selber einmal mit der Programmierung zu versuchen; damit Sie aber nicht anschließend frustriert sind hier ein paar Grundvoraussetzungen für einen wahrscheinlichen Erfolg:

1. Sie sollten PHP und seine fiesen Fallen gut kennen. Wenn Sie wie ich bereits mit C/C++ gearbeitet haben halten Sie möglichst ein Beißholz bereit, funktioniert etwas nicht liegt es idR an einem Vertipper, der inkonsistenten Syntax und der „laxen“ Typen- und Syntaxüberprüfung des C-Ablegers.

2. Grundkenntnisse mit Joomla sind natürlich ebenfalls wichtig, ein „Guru“ müssen Sie hier aber nicht sein. Gleiches gilt für SQL und phpMyAdmin, Erfahrungen hier sind Voraussetzung, wenn Sie auf eine MySQL-Datenbank zugreifen möchten.

3. Halten Sie sich möglichst genau an die Konventionen von Joomla, insbesondere hinsichtlich der Benennung von Dateien und Verzeichnissen. Sie ersparen sich viel Ärger und anderen, die Ihren Code vielleicht später einmal ändern müssen, den Nervenarzt.

4. Rechnen Sie immer damit, dass fehlerhafte Module und Komponenten ein System „durcheinanderbringen“, komplett blockieren und Sie nur noch eine kryptische PHP-Fehlermeldung sehen. Schlau wäre es, das Modul oder die Komponente innerhalb eines Testsystems zu entwickeln.

Modulprogrammierung

Für den Einstieg in die Programmierung des Moduls gibt es zahlreiche gute und weniger gute Tutorials im Netz. Ich fand nach etwas Suche einen vierteiligen Youtube-Kurs von Christian Schülling, der die Grundlagen recht verständlich erklärt und sogar Beispieldateien mitliefert. Hier der Link zur Playlist:

Tutorial Joomla – Eigenes Modul erstellen

Etwas Zeit sollten Sie mitbringen, die Videos haben insgesamt eine Laufzeit von ca. 70 Minuten. Der Autor verwendet dabei Joomla 2.5, mit dem aktuellen Joomla 3.3 hatte ich aber diesbezüglich keine Probleme.

Die Videos sind zwar voller Technikgebrabbel, aber auch recht kurzweilig. Der gute Herr Schülling verhaspelt sich das eine oder andere Mal in PHP und Joomla, wirkt aber gerade auch durch diese Unvollkommenheit sympathisch.

Programmierung einer Komponente

Hier sieht die Sache schon ganz anders aus, eine Komponente ist mE ungleich schwerer zu erstellen als ein Modul. Glücklicherweise fand ich auch hier Hilfe im Netz in Form des praktischen „Component Creator“. Wirklich toll!

Dieses Tool übernimmt alle Arbeiten zur Erstellung der für eine Komponente notwendigen Dateien – und das völlig kostenlos. Einziger Nachteil ist, dass man in der kostenfreien Version nur eine Tabelle pro Komponente anlegen kann.

Fazit

Ich bin immer wieder davon begeistert, was man mit Joomla alles machen kann und wie durchdacht vieles (nicht alles) ist. Mit dem Wissen zur Programmierung von Modulen und Komponenten stehen mir jetzt neue Möglichkeiten offen, werde meine „in die Jahre gekommenen“ PHP-Toolboxen wohl endgültig in Rente schicken und bei neuen Projekten zukünftig ausschließlich auf Joomla setzen.

Pin on PinterestShare on FacebookTweet about this on TwitterShare on Google+Share on LinkedIn

Kommentare

Kommentare

  1. Alex L schrieb:

    Hallo Christian,
    finde ich toll, dass du dich mit Joomla auseinandersetzt und es hier zeigst. Ich besitze jeweils ein Joomla 2.5 und 3.4 Blog und sehe es aus Anwendersicht. Leider und schade, aber ich bin kein Joomla Entwickler und kann in diese Materie nicht allzu sehr eintauchen. Aber genau weiss ich, dass Joomla einem Nutzer sehr gefallen könnte, wenn man bereit ist, Freizeit in so ein Joomla-Projekt zu stecken. Damit kann man nämlich auch gut bloggen und es muss nicht immer unser liebstes WordPress sein.

    Ich arbeite auch mit Drupal sowie etlichen anderen OpenSource CMS und finde einen Gefallen daran. Jedes CMS hat seine Vor-und-Nachteile und wenn ich als Hobbyblogger es gelernt bekomme, wie man damit etwas umgeht und bloggen kann, dann können es auch meine Leser.

    Ich freue mich schon auf Joomla, die nächste Version, 3.5er glaube ich zu wissen. Da dürfte es etwas Neues an Funktionen geben.

    • Vielen Dank. Ich für meinen Teil konzentriere mich auf Joomla, dort alles insbesondere hinsichtlich den Suchmaschinen richtig zu machen ist schon schwer genug. Ich frage mich, wie andere es schaffen, mehrere Content-Management-Systemen perfekt zu beherrschen. Ich kann das nicht, und halbe Sachen möchte ich persönlich nicht abliefern.

Kommentar schreiben

Allgemeiner Hinweis: Bitte kommentieren Sie zum Thema unter Vermeidung von Allgemeinplätzen und Einzeilern. Eine korrekte Rechtschreibung wird erwartet.

Hinweis für SEO-Kommentarschreiber: alle Links sind nofollow und steigern Eure Linkpopularität nicht. Die Kommentare werden moderiert, offensichtliche SEO-Kommentare nicht veröffentlicht.