Entwicklung einer MVC-Komponente/Hinzufügen eines Menütyps zum Seitenbereich
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").
Hinweise
Dieses Tutorial ist ein Teil der Artikel-Serie Entwicklung einer MVC-Komponente für Joomla! 3.2. Es wird empfohlen, vor der Arbeit mit diesem Teil die vorherigen Teile des Tutorials zu lesen.
- Um der Komponente Hello World! einen Menütyp hinzuzufügen, können die folgenden Schritte durchlaufen werden. Alternativ kann das entsprechende Zip-Archiv heruntergeladen werden.
- Dieses Tutorial wird von dem Video Step 3, Adding a Menu Part begleitet.
Einen Menüeintrag zu Hello World hinzufügen
In diesem Artikel werden wir lernen, wie man einen Menüeintrag zu einer Joomla!-Komponente hinzufügt. Für dieses Beispiel werden wir weiterhin an der Komponente Hello World! arbeiten.
Für die Aktualisierung einer Joomla!-Komponente gibt es mehrere Möglichkeiten. In diesem Tutorial konzentrieren wir uns auf Option 2.
1 | Die Dateien manuell in das Verzeichnis der Komponente kopieren <path_to_joomla>/ |
2 | Aktualisierung unter Verwendung des Joomla! Extension Managers (Menüeintrag: Erweiterungen) und des ursprünglichen, nicht komprimierten Verzeichnisses, das für die Installation der Komponente verwendet wurde |
3 | Aktualisierung mit dem Joomla! Extension Manager und einem Update-Server |
Um einen Menüeintrag hinzuzufügen, müssen wir zu com_helloworld navigieren, dem ursprünglichen Verzeichnis, das wir für unsere Komponente erstellt haben. Wir verwenden dabei die aktualisierte Verzeichnisstruktur aus dem letzten Tutorial Hinzufügen einer Ansicht zum Seitenbereich. Wir werden folgende Dateien erstellen oder aktualisieren, indem wir den Quellcode aus den Datei-Details übernehmen:
1 | Erstellen: default.xml | <path_to_com_helloworld/site/views/helloworld/tmpl/default.xml |
2 | Aktualisieren: helloworld.xml | <path_to_com_helloworld/helloworld.xml |
Aktualisierung der Komponente Hello World!
Um die Hello-World-Komponente in der Joomla!-Website zu aktualisieren, folgen wir den gleichen Schritten wie bei der ursprünglichen Installation.
Nachdem die Komponente aktualisiert wurde, können wir einen Menüeintrag hinzufügen. Dadurch können wir über ein Menü auf unsere Komponente zugreifen und müssen keine langen URLs in die Adressleiste eingeben. Wir werden dies mit Hilfe des Menü-Managers von Joomla! tun.
- Wir navigieren mit einem Webbrowser zum Administrationsbereich unserer Joomla!-Installation. Die Adresse lautet <Name der Website>/administrator/index.php. Für dieses Beispiel werden wir zu localhost/joomla/administrator/index.php navigieren, da sich unsere Joomla-Installation in einem Ordner namens joomla befindet..
- Wir fügen einen neuen Menüeintrag hinzu, indem wir auf Menüs → Vorhandenes Menü → Neuer Menüeintrag klicken. Jetzt öffnet sich ein neuer Bildschirm.
- Im Feld "Menütitel" geben wir "Hello World!" ein.
- Wir klicken auf die Schaltfläche "Auswählen" neben dem Feld "Menüeintragstyp" und wählen auf dem Auswahlbildschirm "Hello World! → Hello World.
- Nun können wir den Eintrag speichern & das Formular schließen.
Nun können wir über den gerade erstellten Menüeintragspunkt auf unsere Komponente zugreifen.
Datei-Details
site/views/helloworld/tmpl/default.xml
<?xml version="1.0" encoding="utf-8"?>
<metadata>
<layout title="COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_TITLE">
<message>COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_DESC</message>
</layout>
</metadata>
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.3</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>
<filename>controller.php</filename>
<folder>views</folder>
</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>
Erklärung des Codes
Hier wird erklärt, wie der Code funktioniert.
default.xml
Hinweis - Im Moment werden die Zeichenfolgen in der Administrator-Oberfläche nicht übersetzt. Wir werden in einem späteren Artikel sehen, wie die Übersetzung durchgeführt wird.
helloworld.xml
<version>0.0.3</version>
Aktualisiert die Versionsnummer.
Inhalte der Komponente
An diesem Punkt sollte unsere Komponente die folgenden 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 | Verhindert, dass der Webserver Verzeichnisinhalte auflistet. |
4 | site/controller.php | Controller-Datei. |
5 | site/views/index.html | Verhindert, dass der Webserver Verzeichnisinhalte auflistet. |
6 | site/views/helloworld/index.html | Verhindert, dass der Webserver Verzeichnisinhalte auflistet. |
7 | site/views/helloworld/view.html.php | Datei, die die Ansicht darstellt. |
8 | site/views/helloworld/tmpl/index.html | Verhindert, dass der Webserver Verzeichnisinhalte auflistet. |
9 | site/views/helloworld/tmpl/default.php | Die standardmäßige Ansicht. |
10 | site/views/helloworld/tmpl/default.xml | Fügt den Menüeintrag hinzu |
11 | admin/index.html | Verhindert, dass der Webserver Verzeichnisinhalte auflistet. |
12 | admin/helloworld.php | Das ist der Einstiegspunkt für die Administration der Hello World! Komponente. |
13 | admin/sql/index.html | Verhindert, dass der Webserver Verzeichnisinhalte auflistet. |
14 | admin/sql/updates/index.html | Verhindert, dass der Webserver Verzeichnisinhalte auflistet. |
15 | admin/sql/updates/mysql/index.html | Verhindert, dass der Webserver Verzeichnisinhalte auflistet. |
16 | admin/sql/updates/mysql/0.0.1.sql | Datei, mit der die Schemaversion der Komponente com_helloworld initialisiert werden kann. |