Den Menüpunkt mit einer Variablen versehen

Es kommt vor, dass du die Ausgabe im Frontend für einen Menüpunkt individuell gestaltest. Hierzu benötigst du eine Variable. In diesem Teil des Tutorials fügen wir eine Textvariable zum Menüpunkt hinzu und nutzen diese für die Anzeige im Frontend.

Joomla Request Variable beim Joomla Menü Item

Für Ungeduldige

Sieh dir den geänderten Programmcode in der Diff-Ansicht an und übernimm diese Änderungen in deine Entwicklungsversion.

// https://github.com/astridx/boilerplate/compare/t4...t5.diff

diff --git a/src/components/com_foos/src/Model/FooModel.php b/src/components/com_foos/src/Model/FooModel.php
index 70dd4d2b..654cb0d9 100644
-- a/src/components/com_foos/src/Model/FooModel.php
++ b/src/components/com_foos/src/Model/FooModel.php
@@ -12,6 +12,7 @@

 \defined('_JEXEC') or die;

use Joomla\CMS\Factory;
 use Joomla\CMS\MVC\Model\BaseDatabaseModel;

 /**
@@ -33,10 +34,8 @@ class FooModel extends BaseDatabaseModel
 	 */
 	public function getMsg()
 	{
		if (!isset($this->message))
		{
			$this->message = 'Hello Foo!';
		}
		$app = Factory::getApplication();
		$this->message = $app->input->get('show_text', "Hi");

 		return $this->message;
 	}
diff --git a/src/components/com_foos/tmpl/foo/default.xml b/src/components/com_foos/tmpl/foo/default.xml
index cda926c9..03e19bbe 100644
-- a/src/components/com_foos/tmpl/foo/default.xml
++ b/src/components/com_foos/tmpl/foo/default.xml
@@ -5,4 +5,15 @@
 			<![CDATA[COM_FOOS_FOO_VIEW_DEFAULT_DESC]]>
 		</message>
 	</layout>
	<!-- Add fields to the request variables for the layout. -->
	<fields name="request">
		<fieldset name="request">
			<field
				name="show_text"
				type="text"
				label="COM_FOOS_FIELD_TEXT_SHOW_LABEL"
				default="Hi"
			/>
		</fieldset>
	</fields>
 </metadata>

Schritt für Schritt

Neue Dateien

In diesem Kapitel kommt keine neue Datei hinzu. Wir ändern ausschließlich.

Geänderte Dateien

src/components/com_foos/src/Model/FooModel.php

Im Model änderst du die Methode, in der Text für die Ausgabe berechnet wird. Lösche den folgenden Eintrag:

src/components/com_foos/src/Model/FooModel.php

...
		if (!isset($this->message))
		{
			$this->message = 'Hello Foo!';
		}
...

Füge die nachfolgenden Zeilen an der Stelle hinzu:

src/components/com_foos/src/Model/FooModel.php

...
use Joomla\CMS\Factory;
...
...
		$app = Factory::getApplication();
		$this->message = $app->input->get('show_text', "Hi");
...

src/components/com_foos/tmpl/foo/default.xml

Du speicherst einen Wert über den Menüpunkt im Inputelement, indem du die XML-Datei erweiterst:

src/components/com_foos/tmpl/foo/default.xml

	...
	<fields name="request">
		<fieldset name="request">
			<field
				name="show_text"
				type="text"
				label="COM_FOOS_FIELD_TEXT_SHOW_LABEL"
				default="Hi"
			/>
		</fieldset>
	</fields>
  ...

Teste deine Joomla-Komponente

  1. Installiere deine Komponente in Joomla! Version 4, um sie zu testen:

Kopiere die Dateien im administrator Ordner in den administrator Ordner deiner Joomla! 4 Installation.
Kopiere die Dateien im components Ordner in den components Ordner deiner Joomla! 4 Installation.

Eine neue Installation ist nicht erforderlich. Verwende die aus dem vorhergehenden Teil weiter.

  1. Wechsele wieder in den Menü Manager und öffne den in Teil 4 erstellen Menüpunkt. Hier siehst du jetzt ein Textfeld, in das du einen beliebigen Text einfügst.

Joomla Request Variable beim Joomla Menü Item

  1. Welche jetzt in die Frontendansicht. Überzeuge dich davon, dass der von dir beim Menüpunkt eingegebene Text im Frontend an der richtigen Stelle ausgegeben wird.

Joomla Request Variable beim Joomla Menü Item

Ich entschuldige mich für meine Einfallslosigkeit. Dir fallen sicher lustigere oder sinnvollere Beispiele ein. Der Sinn und die Funktion der Variablen werden aber klar, oder?

So erstellst du mehrere Menüpunkte, die jeweils einen anderen Text enthalten. Ein beliebter Anwendungsfall ist es, das Design der Ausgabe mithilfe von Variablen zu beeinflussen. Über die Variable fragst du beispielsweise ab, ob der Inhalt in einer Liste oder in einer Tabelle auszugeben ist.

Geänderte Dateien

Übersicht

Vor oder zurück ...