J3.x

Entwicklung einer MVC-Komponente/Hinzufügen eines Menütyps zum Seitenbereich

From Joomla! Documentation

< J3.x:Developing an MVC Component
This page is a translated version of the page J3.x:Developing an MVC Component/Adding a menu type to the site part and the translation is 100% complete.

Other languages:
العربية • ‎Deutsch • ‎English • ‎español • ‎français • ‎Nederlands
Joomla! 
3.x
Tutorial
Entwicklung einer MVC Komponente


Dies ist eine Artikel-Serie mit Tutorials über die Entwicklung einer Model-View-Controller Komponente für Joomla! VersionJoomla 3.x.

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.

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.