Wie entwickle ich ein Joomla-Modul?


10

Ich habe weit und breit nach einem Tutorial dazu gesucht, kann aber anscheinend nichts Befriedigendes finden. Wie macht man ein neues Modul für Joomla?

Im Moment verwende ich benutzerdefinierte HTML-Module in meinem gesamten Code und möchte in PHP greifen und sie alle zu einem Modul machen können, aber ich habe kein Tutorial dafür gefunden. Ich habe bereits installierte Module geändert, weiß aber nicht, wie ich eines erstellen soll, das installiert werden soll.

Die Joomla-Dokumentation ist ziemlich verwirrend und nachdem ich sie mehrmals durchgelesen habe, habe ich aufgegeben. Kann mir jemand helfen, diesen Prozess zu erklären? Vielen Dank!

Antworten:


17

Lernen der Joomla-Modulentwicklung

Ich habe gelernt, indem ich den Kern oder andere Module von Drittanbietern studiert und angepasst habe.
Module als Konzept sind einfacher als die Komponenten (wir könnten sagen, 2 Apps Front-End / Back-End) und sind so konzipiert, dass sie eine Information anzeigen.
Wenn Sie also den Modulordner / die Moduldateien öffnen und mit dem Lesen des Codes beginnen, werden Sie wahrscheinlich schnell darauf zugreifen.

Joomla Module Anatomy am Beispiel

Sie können beispielsweise das Modul "Neueste Artikel" in Joomla 3.2 öffnen und dessen Code überprüfen, während Sie die folgenden Zeilen lesen. Im Ordner des Moduls finden wir die 4 Basisdateien:

1. mod_articles_latest.php
2. helper.php
3. tmpl/default.php
4.mod_articles_latest.xml

  1. Dies mod_articles_latest.phpist die Hauptdatei der Module, die beim Aufruf des Moduls zuerst verwendet wird. Es initialisiert das Modul und enthält die helper.phpKlassenmethode des Hilfsprogramms zum Abrufen von Daten und schließlich die Vorlage des Moduls ( default.php) zum Anzeigen der Daten.

  2. Die helper.phpDatei ist die "Maschinerie" des Moduls (wenn wir es so nennen könnten). Im Helfer erstellen wir die Klasse des Moduls und seine Methoden zum Abrufen der Daten. Dies ist der Ort, an dem das Modul mit der Datenbank "sprechen" kann. Wenn Sie den Code in der Hilfsdatei dieses Moduls lesen, werden Sie feststellen, dass er die ModArticlesLatestHelperKlasse enthält , die eine Methode hat :getList(&$params) .
    Innerhalb dieser Methode überprüft das Modul die Backend-Einstellungen des Moduls und erstellt schließlich die Liste der Artikel, die es zurückgeben wird, basierend auf diesen Bedingungen. Beachten Sie, dass dieses Modul die JModelLegacy::getInstanceMethode verwendet, um das Inhaltsmodellobjekt zurückzugeben .

  3. Dies default.phpist die Hauptvorlage des Moduls und für die Anzeige des Modulinhalts verantwortlich. - Hier erstellen wir die HTML-Ausgabe unter Verwendung der Daten, die Sie zuvor in der mod_articles_latest.phpKlasse des Moduls abgerufen haben . Es befindet sich im Ordner tmpl . * Beachten Sie, dass die Datei des Hauptmoduls die Vorlagendatei mit der JModuleHelper::getLayoutPathMethode enthält, die zuerst nach Vorlagenüberschreibungen sucht.

  4. Schließlich mod_articles_latest.xmlwürde ich es wie den "Botschafter" des Moduls nennen. Es ist die Datei, die das Modul während der Installation in Joomla "einführt". Sie gibt die Dateien an, die vom Installationsprogramm kopiert werden, und enthält außerdem Informationen zu den Parametern des Moduls, die vom Modulmanager verwendet werden, sowie zusätzliche Informationen über das Modul.

Dies sind die wesentlichen Teile eines Basismoduls. Ein weiterer Aspekt, den Sie möglicherweise berücksichtigen möchten, ist die Unterstützung mehrerer Sprachen. Dies kann durch Verwendung von Sprachzeichenfolgen und Sprachübersetzungsdateien erreicht werden . Wenn Sie so weit gekommen wären, um ein Basismodul zu erstellen, sollte das Hinzufügen von Sprachunterstützung ziemlich einfach sein.


15

3

Wir haben ein kostenloses Modul für den gleichen Zweck entwickelt. Benutzerdefiniertes PHP-Modul für Joomla CMS .

Sie müssen eine PHP-Datei erstellen, z. B. login.php in [website-root] / modules / mod_customphp / files

  • Verwenden Sie nun diese Datei
  • Gehen Sie zu [Backend] -> Modul-Manager
  • Erstellen Sie ein neues Custom-PHP-Modul
  • In Parameter includefile put login
  • Dadurch wird login.php im Modul gerendert.

das beantwortet meinen Anwendungsfall für PHP, aber es beantwortet nicht, was ich tatsächlich gefragt habe (in meinem Fall muss ich bestimmte Einstellungen wie Farbe usw. für jede Verwendung des Moduls speichern, was einfacher ist, wenn ich erstellen kann ein neues Modul anstatt nur auf PHP zuzugreifen) obwohl danke für den Tipp.
Serakfalcon

Sie können dem Modul weitere Parameter hinzufügen und diese Parameter in Ihren PHP-Dateien verwenden.
Shyam

3

Sie können ein vorhandenes Modul in einer lokalen Installation kopieren. Dann benennen Sie es nach Ihren Wünschen um. Sie müssen auch die PHP- und XML-Dateien sowie die PHP-Klassennamen im Code umbenennen. Dann erstellen Sie einfach eine Zip-Datei Ihres Moduls. Diese Zip-Datei können Sie in Ihrer Joomla-Installation installieren.

Benötigen Sie weitere Informationen zum Umbenennen?


Das funktioniert bis zu einem gewissen Grad, und ich beginne oft so, aber es reicht nicht aus, um mit Sprachzeichenfolgen und zusätzlichen Medien umzugehen, die an verschiedenen Orten installiert werden.
Peter Wiseman

@PeterWiseman Ja, Sie haben Recht, aber es ist ein einfacher und schneller Weg, um loszulegen.
Seagul
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.