Entwicklung der Basis-Komponente
From Joomla! Documentation
< J3.x:Developing an MVC Component
Artikel in dieser Serie
Hinzufügen eines Menütyps zum Seitenbereich
Hinzufügen eines Models zum Seitenbereich
Hinzufügen einer variablen Anfrage zum Menütyp
Benutzung der Datenbank
Backend-Grundlagen
Hinzufügen von Sprachen
Hinzufügen von Aktionen im Backend
Hinzufügen von Dekorationen zum Backend
Hinzufügen von Validierungen
Hinzufügen von Kategorien
Hinzufügen einer Konfiguration
Hinzufügen eines Installations-/Deinstallations-/Aktualisierungs-Skriptes
Hinzufügen eines Formulars im Frontend
Benutzung des Sprachenfilters
- Hinzufügen von Modalen
- Hinzufügen von Verknüpfungen
- Hinzufügen der Freigabe/Sperrung von Elementen
- Hinzufügen von Sortierungen
- Hinzufügen von Ebenen
- Hinzufügen von Versionen
- Hinzufügen von Schlagwörtern (Tags)
- Hinzufügen von Zugriffsebenen
- Hinzufügen von Stapelverarbeitungen
- Hinzufügen eines Cache-Speichers
- Hinzufügen eines Feeds
Hinzufügen eines Aktualisierungs-Servers
Dies ist eine Artikel-Serie mit Tutorials über die Entwicklung einer Modal-View-Controller Komponente für Joomla! Version.
Beginne mit der Einführung und navigiere durch die Artikel dieser Serie mit Hilfe des Buttons am Ende der Seite oder der Box auf der rechten Seite ("Artikel in dieser Serie").
Info
Dieses Tutorial ist ein Teil der Entwicklung einer MVC-Komponente für Joomla! 3.x Artikel-Serie. Es ist sinnvoll, die vorherigen Teile des Tutorials zu lesen, bevor du fortfährst.
Wenn du Joomla! bereits nutzt, hast du sicher schon festgestellt, dass Erweiterungen durch eine komprimierte Datei, welche alle für eine Installation und Deinstallation notwendigen Dateien enthält, installiert werden.
Wenn du die nachfolgenden Schritte durcharbeitest, kannst du selbst eine eigene Komponente namens Hello World! erstellen oder kannst die Dateien direkt vom Git Repository Archiv herunterladen.
Hier sind einige auf diesem Dokument basierende Folien, die erklären wie, man grundlegende bis fortgeschrittene Joomla!-Komponenten erstellt.
Joomla! Basic Component Help
Joomla! Advance Component Help
Des Weiteren gibt es eine Reihe von Videos, welche die Schritte im Tutorial begleiten, beginnend mit:
Schritt 1, Entwickle eine einfache Komponente (en)
Zugriff auf die in der Videoserie verwendeten Folien findest du unter: Folien.
Wichtig! Die Joomla-Entwickler begannen seit Version 3.8 mit der Änderung der Namen von Joomla-Klassen und der Verzeichnisstruktur, in der sie liegen. Viele der Schritte im Tutorial und den Videos verweisen auf veraltete Namenskonventionen. Um das passende Äquivalent der neuen Klasse und und deren Ort zu finden, schaue in deine libraries/classmap.php Datei.
Wie du eine eigene Komponente zu Joomla! hinzufügst
In diesem Artikel zeigen wir dir, wie du eine Basis-Komponente für Joomla! erstellst und anschließend installierst. Für dieses Beispiel werden wir mit der Komponente Hello World! arbeiten.
Zu Beginn erstelle bitte mit deinem bevorzugten Datei-Explorer einen Ordner für die Hello World! Komponente. Dieser Ordner kann überall in deinem Dateisystem sein, er muss nur außerhalb deines Joomla! Installationsverzeichnisses sein. Für dieses Beispiel geben wir dem neuen Ordner den Namen com_helloworld, aber grundsätzlich kann der Ordner auch jeden beliebigen anderen Namen besitzen.
Als nächstes müssen wir innerhalb des gerade erstellten Verzeichnisses einige Dateien anlegen. Lege die folgenden Dateien an und schreibe den jeweiligen Source-Code für jede Datei. Den jeweiligen Code findest du hier Datei-Details.
1 | helloworld.xml | Das ist eine XML-Datei (Manifest), welche Joomla! sagt, wo deine Komponente installiert werden soll. |
2 | site/helloworld.php | Das ist der Einstiegspunkt der Seite für die Komponente Hello World! |
3 | site/index.html | Hindert den Webserver daran, den Verzeichnisinhalt aufzulisten. |
4 | admin/index.html | Hindert den Webserver daran, den Verzeichnisinhalt aufzulisten. |
5 | admin/helloworld.php | Das ist der Einstiegspunkt der Administration für die Hello World! Komponente. |
6 | admin/sql/index.html | Hindert den Webserver daran, den Verzeichnisinhalt aufzulisten. |
7 | admin/sql/updates/index.html | Hindert den Webserver daran, den Verzeichnisinhalt aufzulisten. |
8 | admin/sql/updates/mysql/index.html | Hindert den Webserver daran, den Verzeichnisinhalt aufzulisten. |
9 | admin/sql/updates/mysql/0.0.1.sql | Datei, mit der die Schemaversion der Komponente com_helloworld initialisiert werden kann. |
Installation der Komponente Hello World!
Erstelle mit deinem bevorzugten Datei-Explorer ein Zip-Archiv aus diesem Verzeichnis. Für dieses Beispiel nennen wir die Datei com_helloworld.zip. Und wieder der Hinweis: Der Name dieser Datei kann beliebig gewählt werden.
Jetzt sind wir bereit die Komponente Hello World! zu installieren. Es gibt zwei Wege, dies zu tun. Beide sind erklärt in: Installation einer Erweiterung. Hier nutzen wir die Methode über die Erweiterungs-Verwaltung von Joomla!.
- Benutze deinen bevorzugten Browser und navigiere zur Administrationsansicht deiner Joomla! Seite. Die Adresse wird folgende sein: <DeineSeite>/joomla/administrator/index.php. Für dieses Beispiel navigieren nun auf localhost/joomla/administrator/index.php.
- Klicke auf Erweiterungen → Verwalten → Installieren → Paketdatei hochladen → Datei auswählen
- Suche und wähle die Datei
- Klicke auf Hochladen und Installieren
Hinweis - Du solltest eine Nachricht sehen, ob die Installation erfolgreich oder fehlgeschlagen ist.
Du kannst die grundlegenden Funktionen der Komponente überprüfen, indem du die Hello World! Seite für den Administrator- oder Seitenbereich eingibst.
- Nutze deinen bevorzugten Browser und navigiere zur Hello World! Komponentenseite deiner Website. Die Adresse wäre: <DeineSeite>/joomla/index.php?option=com_helloworld. Für dieses Beispiel navigieren wir also zu: localhost/joomla/index.php?option=com_helloworld.
- Nutze deinen bevorzugten Browser und navigiere zur Hello World! Komponentenseite deines Administrationsabschnittes. Die Adresse wäre: <DeineSeite>/joomla/administrator/index.php?option=com_helloworld. Für dieses Beispiel navigieren wir also zu: localhost/joomla/administrator/index.php?option=com_helloworld.
Du wirst weiterhin bemerken das die Komponente Hello World! in der Administratorenansicht deiner Joomla-Installation unter Komponenten sichtbar ist.
Details zu den Dateien
admin/sql/updates/mysql/0.0.1.sql eine leere Datei, mit der die Schemaversion der Komponente com_helloworld initialisiert werden kann.
helloworld.xml
<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="3.0" method="upgrade">
<name>Hello World!</name>
<!-- The following elements are optional and free of formatting constraints -->
<creationDate>January 2018</creationDate>
<author>John Doe</author>
<authorEmail>john.doe@example.org</authorEmail>
<authorUrl>http://www.example.org</authorUrl>
<copyright>Copyright Info</copyright>
<license>License Info</license>
<!-- The version string is recorded in the components table -->
<version>0.0.1</version>
<!-- The description is optional and defaults to the name -->
<description>Description of the Hello World component ...</description>
<update> <!-- Runs on update; New since J2.5 -->
<schemas>
<schemapath type="mysql">sql/updates/mysql</schemapath>
</schemas>
</update>
<!-- Site Main File Copy Section -->
<!-- Note the folder attribute: This attribute describes the folder
to copy FROM in the package to install therefore files copied
in this section are copied from /site/ in the package -->
<files folder="site">
<filename>index.html</filename>
<filename>helloworld.php</filename>
</files>
<administration>
<!-- Administration Menu Section -->
<menu link='index.php?option=com_helloworld'>Hello World!</menu>
<!-- Administration Main File Copy Section -->
<!-- Note the folder attribute: This attribute describes the folder
to copy FROM in the package to install therefore files copied
in this section are copied from /admin/ in the package -->
<files folder="admin">
<!-- Admin Main File Copy Section -->
<filename>index.html</filename>
<filename>helloworld.php</filename>
<!-- SQL files section -->
<folder>sql</folder>
</files>
</administration>
</extension>
site/helloworld.php
Hello World
admin/helloworld.php
Hello World administration
index.html
Übliche Datei in allen Ordnern.
<html><body bgcolor="#FFFFFF"></body></html>
Inhalte der Komponente
An diesem Punkt der Übung sollte deine Komponente folgende Dateien enthalten:
1 | helloworld.xml | Dies ist eine XML-Datei (Manifest), die Joomla! mitteilt, wie unsere Komponente installiert werden soll. |
2 | site/helloworld.php | Dies ist der Einstiegspunkt zum Seitenbereich der Komponente Hello World! |
3 | site/index.html | Hindert den Webserver daran, den Verzeichnisinhalt aufzulisten. |
4 | admin/index.html | Hindert den Webserver daran, den Verzeichnisinhalt aufzulisten. |
5 | admin/helloworld.php | Das ist der Einstiegspunkt für die Administration der Hello World! Komponente. |
6 | admin/sql/index.html | Hindert den Webserver daran, den Verzeichnisinhalt aufzulisten. |
7 | admin/sql/updates/index.html | Hindert den Webserver daran, den Verzeichnisinhalt aufzulisten. |
8 | admin/sql/updates/mysql/index.html | Hindert den Webserver daran, den Verzeichnisinhalt aufzulisten. |
9 | admin/sql/updates/mysql/0.0.1.sql | Datei, mit der die Schemaversion der Komponente com_helloworld initialisiert werden kann. |
Ein aktualisiertes Git-Repository, das diesem Tutorial folgt, ist verfügbar unter https://github.com/Stevec4/Joomla-HelloWorld Bei Code Unstimmigkeiten oder Änderungen erstelle bitte ein "Pull Request".