Tutorial: Joomla Modul entwickeln – Grundgerüst

Samstag, 5 Juni 2010 05:38 geschrieben von Marco Beierer

Vor ein paar Tagen veröffentlichte ich die Planung des im Rahmen der Promotion Aktion entstehenden Joomla Moduls. Aufbauend auf dieser Planung werde ich nun – wie bereits angekündigt – ein mehrteiliges Tutorial zur Joomla Modul Entwicklung starten.

Im ersten Teil dieses Tutorials werde ich beschreiben, wie die Überlegungen der Planung sinnvoll in ein Modul Grundgerüst umgesetzt werden können.

Planungsphase

Eine detaillierte Planung ist für die Modul Entwicklung (und Entwicklung im allgemeinen) unerlässlich. Mögliche Probleme können mit einer guten Planung bereits im Voraus erkannt und korrigiert werden. Natürlich muss in der Planung noch nicht jedes kleinste Detail festgelegt sein. Je besser die Planung aber ausgearbeitet ist, umso schneller geht die eigentliche Implementierung voran.

Informationen

Wie startet man am besten mit der Entwicklung eines eigenen Moduls? Einen guten Einstieg in die Modulentwicklung und viele weitere Informationen zu Joomla sind in der offiziellen Joomla Dokumentation in englischer Sprache erhältlich.

Ein weiterer Einstiegpunkt ist natürlich dieses Tutorial. Da hier allerdings nicht jeder Spezialfall abgedeckt werden kann, lohnt sich zusätzlich hin und wieder ein Blick in die Joomla Dokumentation. Aber auch die Analyse bestehender Module kann hilfreich sein.

Ordner- und Dateistruktur

Wenn die Planung des Moduls abgeschlossen ist, kann mit dem anlegen einer Ordner- und Dateistruktur begonnen werden. Frontend Module werden im Joomla Ordner "modules" abgelegt. Backend Module in "administrator/modules".

Für jedes Modul wird ein eigener Ordner erstellt. Der Name dieses Ordners beginnt mit dem Kürzel "mod" und ist nach folgendem Schema aufgebaut: "mod_name_des_modules".

Die gesamte Ordner- und Dateistruktur dieses Moduls ist auf dem unterhalb abgebildeten Screenshot ersichtlich. Zu erkennen ist auch, dass das Modul auf den Namen "Universal News" getauft wurde.

Screenshot: Joomla Modul Dateistruktur

Erläuterung zum Aufbau

Fangen wir mit der Erklärung bei den "index.html" Dateien. Eine index.html sollte sich in jedem Ordner des Moduls befinden. Das ist zwar nicht unbedingt notwendig, gehört aber zum guten Stil. Das Auflisten eines Verzeichnisses beim direkten Aufruf des Ordners und eingeschaltetem "Directory Listing" wird mit einer index.html verhindert.

Weiterhin sehen wir drei INI Dateien. Wie der Name schon erkennen lässt, handelt es sich bei diesen Dateien um die Sprachdateien. Ich werde das Modul anfangs in Deutsch, Niederländisch und Englisch veröffentlichen. Die Sprachdateien werden bei der Installation des Moduls dann in das "language" Verzeichnis der Joomla Installation kopiert.

Übrig bleiben noch die Dateien "helper.php", "mod_universal_news.php" und "mod_universal_news.xml". Die XML Datei dient der Installation und wird im folgendem Abschnitt detailliert besprochen. Die "mod_universal_news.php" enthält die Logik des Moduls. Sie ist daher sozusagen der Controller im MVC Konzept der Modularchitektur. Der Helfer (helper.php) regelt unter anderem die Datenbankabfragen und übernimmt die Rolle des Models.

Im Ordner "tmpl" werden die Views des Moduls abgelegt. Zu Beginn haben wir nur einen View (default.php) nötig, da der optische Aufbau des Moduls bei allen Einstellungen unverändert bleibt. Für die optionale Slideshow wird später eventuell ein eigener View nötig sein. Der Newsticker erhält definitiv eine eigene Ansicht.

XML Datei anlegen

Wenn die Planung des Moduls bereits detailliert ausgearbeitet ist, kann und sollte die XML Datei des Moduls bereits vor der Implementierung erstellt werden. Andernfalls geht dies allerdings auch noch nachträglich.

Die XML Datei erhält alle Informationen zum Modul, daher beispielsweise den Namen des Moduls, den Namen des Entwicklers, Version und das Erstellungsdatum. Zudem werden wichtige Installationsinformationen festgehalten. Zum Beispiel welche Sprachen unterstützt werden und welche Dateien beim Installieren kopiert werden müssen.

Zuletzt werden noch die Einstellungsoptionen zur Administration des Moduls in der XML Datei gespeichert. Für die Parameter stehen insgesamt 21 vordefinierte Feldtypen zur Auswahl. Beispielsweise Textfeld, Kalendar oder Kategorien. Eine Auflistung aller Typen ist in der Joomla Dokumentation zu finden. Die Erstellung eigener Parametertypen ist ebenfalls möglich.

Eine vollständige XML Datei kann zum Beispiel im Artikel "How to create a module" (Wie erstelle ich ein Modul) in der Joomla Dokumentation eingesehen werden. Auch ein Blick in die XML Dateien anderer Module lohnt sich.

Screenshot: Joomla Modul XML

Dieser Artikel bezieht sich auf die Modulentwicklung für Joomla 1.5.