39.2 Hallo Joomla! 

Unser erstes Projekt soll, wie könnte es anders sein, die Ausgabe von »Hallo Joomla!« in einem Modul realisieren. Dazu benötigen wir zwei Dateien, die Sie am besten in einem separaten Verzeichnis erstellen:
- mod_hallojoomla.php ist die eigentliche Programmdatei.
- mod_hallojoomla.xml wird für die Installation und eventuelle Parameter auf der Einstellungsseite benötigt.
- index.html wird zur Sicherheit mit in das Verzeichnis gelegt, um zu verhindern, dass die Dateien des Verzeichnisses aufgelistet werden können.
Die PHP-Datei, die ja zunächst nichts anderes machen soll, als eine Ausgabe zu produzieren, kann so aussehen:
1 <?php 2 defined( '_JEXEC' ) or die( 'Restricted Access' ); 3 echo '<h1>Hallo Joomla!</h1>'; 4 ?>
Listing 39.1 mod_hallojoomla.php
Nachdem in Zeile 1 PHP aktiviert wurde, wird in Zeile 2 sichergestellt, dass die Datei nur im Rahmen von Joomla! und nicht als eigenständiges Programm aufgerufen wurde. Ist dies nicht der Fall, wird die Ausführung mit einer Meldung abgebrochen. Diese Zeile steht in fast allen Skripten, die zu Joomla! gehören. Zeile 3 enthält die eigentliche Ausgabe, die durch den echo-Befehl geschrieben wird. Die Zeichenfolge, die ausgegeben werden soll, steht dahinter in Hochkommas. Sie sehen, dass wir hier gegebenenfalls auch die HTML-Tags mit ausgeben müssen.
Die Datei index.html ist schnell beschrieben, sie soll ja nur unerwünschte Eindringlinge fernhalten. Für diese reicht die Ausgabe einer leeren Seite:
1 <html> 2 <head></head> 3 <body></body> 4 </html>
Listing 39.2 index.html
Nun benötigen wir noch eine Definitionsdatei, damit das Modul auch als solches erkannt wird. Diese Datei kann folgendermaßen aussehen:
1 <?xml version="1.0" encoding="utf-8"?> 2 <install type="module" version="1.5.0"> 3 <name>Hallo Joomla</name> 4 <author>Markus</author> 5 <creationDate>September 2008</creationDate> 6 <copyright>(C) 2008 Markus</copyright> 7 <license>http://www.gnu.org/copyleft/gpl.html</license> 8 <authorEmail>glaser@hallowelt.biz</authorEmail> 9 <authorURL>www.hallowelt.biz</authorURL> 10 <version>0.1</version> 11 <description>Gibt "Hallo Joomla!" aus</description> 12 <files> 13 <filename module="mod_hallojoomla">14 mod_hallojoomla.php
15 </filename> 16 <filename>index.html</filename> 17 </files> 18 <params /> 19 </install>
Listing 39.3 mod_hallojoomla.xml
Zeile 1 gibt an, dass es sich bei dem folgenden Dokument um eine XML-konforme Datei handelt. Wie Sie sehen, sind XML-Dokumente ähnlich wie HTML in Tags (Elementen) strukturiert. XML-Dokumente benötigen zwingend ein einziges Wurzelelement, dem alle anderen Elemente untergeordnet sind. Dieses ist in unserem Fall das Tag <install>, das als Parameter den Typ der Erweiterung (module) sowie die Joomla!-Version enthält, für die das Modul geschrieben wurde. Es folgt eine Reihe von Metainformationen, die das Modul beschreiben.
Code | Metainformation |
<name> |
Name der Erweiterung, so wie er im Backend im entsprechenden Manager (Modul, Plug-in oder Komponenten-Menü) angezeigt wird. |
<author> |
Der Autor der Erweiterung. |
<authorEmail> |
Die E–Mail-Adresse, unter der der Autor erreichbar ist. |
<authorUrl> |
Die Adresse der Homepage des Autors. |
<creationDate> |
Das Erstellungsdatum. Das Zeitformat spielt hier keine Rolle. |
<copyright> |
Wer hat die Urheberrechte an der Erweiterung? |
<license> |
Geben Sie hier an, unter welcher Lizenz die Erweiterung steht. Es bietet sich an, sie unter die GNU GPL zu stellen, unter der auch das Kernsystem steht. |
<version> |
Versionsnummer der Erweiterung. Es hat sich eingebürgert, ungerade Nummern für Entwicklungsversionen (»testing«) und gerade für fertige Versionen (»stable«) zu verwenden. |
<description> |
Versuchen Sie, an dieser Stelle das Modul kurz und möglichst aussagekräftig zu beschreiben. Die Beschreibung wird nach der Installation und auf der Eigenschaftsseite angezeigt. |
Nicht alle Metainformationen werden gebraucht |
Es ist nicht nötig, immer alle Informationen anzugeben. Wichtig ist nur, dass der Name der Erweiterung festgelegt wird. Haben Sie jedoch vor, die Erweiterung zu veröffentlichen, so ist es ratsam, alle Felder anzugeben. |
Der Abschnitt <files> listet alle Dateien auf, die zum Modul gehören. Diese Angabe ist nötig, damit Joomla! bei der Installation weiß, welche Bestandteile kopiert werden müssen. Jede Datei wird von einem <filename>-Tag umschlossen. Das eigentliche Modul-Skript wird mit dem Attribut module="mod_hallojoomla" gekennzeichnet. Das ist bei anderen Files nicht nötig.
Das letzte Tag, <params>, beschreibt eventuelle Optionen, die Sie auf der Eigenschaftsseite des Moduls festlegen können. In unserem Beispiel bleibt es leer. Eine nähere Beschreibung finden Sie in Kapitel 40, »Die Joomla!-API«.
Vorsicht bei Zeilenumbrüchen |
Achten Sie darauf, dass die Zeilen 13, 14 und 15 in Ihrer Datei in einer Zeile stehen. Ansonsten wird der Dateiname nicht richtig erkannt. Wir haben das hier nur aus Gründen der Übersichtlichkeit geändert. |
Rufen Sie nun im Backend die Installation auf (Erweiterungen • Installieren/Deinstallieren). Sie haben jetzt zwei Möglichkeiten. Im Bereich Aus Verzeichnis installieren können Sie den Pfad zu den Modul-Dateien eingeben und dann auf Installieren klicken. Oder Sie fügen die drei Dateien in ein Zip-Archiv mit dem Namen mod_hallojoomla.zip ein. Jetzt können Sie das Modul im Bereich Paketdatei hochladen mit Durchsuchen… aufrufen und dann mit Datei hochladen & Installieren installieren. Beide Methoden haben Vor- und Nachteile. Während Sie den Pfad bei der ersten Variante auswendig wissen müssen, ist es im zweiten Fall bei jeder Änderung nötig, das Zip-Archiv neu zu erzeugen.
Nachdem das Modul installiert ist, können Sie es im Modul-Manager aktivieren. Es wird standardmäßig an die Position »left« gestellt. Rufen Sie die Seite im Frontend auf, und bewundern Sie Ihr Werk.
Abbildung 39.6 Das erste eigene Modul
Bei der Installation sind zwei Dinge passiert. Zunächst wurden die beiden Dateien, die das Modul darstellen, in das Verzeichnis joomla/modules kopiert. Dann wurde in der Datenbank in der Tabelle jos_modules ein Eintrag erstellt, der die Informationen enthält, die Sie im Modul-Manager einstellen können. Einige dieser Informationen wurden aus der XML-Datei übernommen, so z. B. der Modul-Titel.
Wenn Sie nur Änderungen an der Programmdatei vornehmen wollen, so können Sie in Zukunft direkt joomla/modules/mod_hallojoomla.php bearbeiten. Das geht allerdings nicht, wenn das Modul einen neuen Namen bekommt.