Joomla: ein einfaches Modul erstellen

Was für WordPress die Widgets (und zum Teil auch die Plugins), das sind für Joomla die Module. Und sogar noch ein bisschen mehr, denn man kann Module an jede beliebige Template-Position laden und ist nicht an eine oder mehrere widgetfähige Sidebar gebunden. Die Joomla-Doku zum Thema Ein einfaches Modul erstellen ist recht gut, es fehlt allerdings die Anleitung, wie man sein Modul dann auch tatsächlich in Joomla einbindet. Deswegen erkläre ich es hier mal Step by Step.

Wohin kommt das Ganze?

Um die Installation zu vereinfachen, geht man gleich in den Ordner [joomla]\modules und legt dort einen neuen Unterordner an, der den Namen mod_[meinmodul] bekommt, in meinem Fall ist das mod_helloworld.

modulordner

modulordner

Unterhalb sieht es so aus:

unterordner_modul

unterordner_modul

Im Ordner tmpl liegen noch zwei Dateien:

ordner_tmpl

ordner_tmpl

Woher kriegen wir die Dateien?

Aus der Joomla-Doku, die sind hier https://docs.joomla.org/J3.x:Creating_a_simple_module/Developing_a_Basic_Module/de fertig zum Rauskopieren angeboten.

Wer macht hier was?

Gehen wir es mal der Reihe nach durch.

Die index.html tut in beiden Fällen nichts anderes als eine leere Seite ausgeben und soll einen direkten böswilligen Zugriff auf das Verzeichnis verhindern.

Die default.php steuert die Ausgabe unseres Moduls, die sieht so aus:

<?php 
// No direct access
defined('_JEXEC') or die; ?>
<?php echo $hello; ?>

Die Variable $hello wurde in der Datei mod_helloworld.php definiert, das sieht so aus:

$hello = modHelloWorldHelper::getHello($params);

Dies wiederum ist der Aufruf der Funktion getHello() aus der Klasse modHelloWorldHelper aus der Helper-Datei, die wurde dort so definiert:

class ModHelloWorldHelper
{
    /**
     * Retrieves the hello message
     *
     * @param   array  $params An object containing the module parameters
     *
     * @access public
     */    
    public static function getHello($params)
    {
        return 'Hello, World!';
    }
}

That’s where the Action is!  Zugegeben, es ist ein bisschen von hinten durch die Brust ins Auge, aber so gehts. Es ist auch vorgesehen, dass man der Funktion getHello() Parameter mitgibt, das kann in der mod_helloworld.php z.B. so aussehen:

$hello = modHelloWorldHelper::getHello("Evi Silvia");

Dann müssen wir nur noch die Ausgabe in der helper.php modifizieren:

public static function getHello($params)
    {
        return 'Hallo, liebe '.$params."!";
    }

Was kommt dabei heraus? Nicht weiter überraschend: Hallo, liebe Evi Silvia! Aber ich greife vor.

Wie man Joomla das neue Modul jetzt bekannt macht

Über Erweiterungen->Verwalten->Überprüfen sollte das neue Modul jetzt gefunden werden, und wenn man die Dateien richtig zusammenkopiert hat, kann man es auch installieren.

Dann läßt sich unter Erweiterungen->Module->Neu das neue Hello World Modul auswählen:

helloworld_auswaehlen

helloworld_auswaehlen

Wie gewohnt Titel vergeben und Modulposition auswählen, und schon sollte die Ausgabe an der gewählten Position zu sehen sein:

modul_anzeige

modul_anzeige

Ich hoffe, ich konnte damit etwas Klarheit in die Sache bringen, bei der Vorlage aus der Joomla-Doku fehlte einfach noch der Teil mit der Installation. Aber so sollte es jeder hinkriegen!

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.