it-swarm.com.de

Mehrere Controller in Joomla

Ich bin total Joomla noob und versuche herauszufinden, wie man MVC in Joomla steuert. Ich habe this "Entwickeln einer MVC-Komponente" im Joomla-Basistutorial gelesen und verstanden, dass sich der Hauptcontroller unter components/com_component/controller.php Befindet und die andere Datei auf components/com_helloworld/helloworld.php Zeigt in die Datei controller.php, um die Anforderung auszuführen. Die Frage ist, ich möchte einen neuen controller -Ordner erstellen und alle controllers wie unten beschrieben in diesen Ordner einfügen. Wie geht das? Controllers folder

Jeder Rat wird sehr geschätzt. Ich danke dir sehr!!

4
SonDang

Ich denke, Sie verwechseln den Zweck Ihres Haupt-/Hauptcontrollers (controller.php) Und Ihrer Subcontroller (alles im Ordner /controllers). Weitere Informationen hierzu finden Sie unter the docs .

Der Hauptcontroller wird normalerweise verwendet, um das zu tun, was Sie in Ihrem Kommentar erwähnt haben (Rendern einer Ansicht basierend auf dem Parameter view, der normalerweise in der URL angegeben ist). In controller.php Heißt die Funktion, die dies ausführt, display(). Also die folgende URL:

http://example.com/index.php?option=com_mycomponent&view=test

Ruft die Funktion display() in controller.php Auf und lädt die Ansicht test in /views/test.

Subcontroller im Ordner controllers werden im Allgemeinen für CRUD-Aufgaben verwendet, können jedoch problemlos mit einem URL-Parameter task aufgerufen werden. Beispielsweise:

http://example.com/index.php?option=com_mycomponent&task=test.process

Ruft die Funktion process() in /controllers/test.php Auf. Beachten Sie, dass der Parameter task<controllerName>.<functionName> Ist.

Sie werden feststellen, dass dies häufig für Aktionen verwendet wird, für die keine Ansicht erforderlich ist, z. B. in com_content Zum Veröffentlichen/Einchecken/Auschecken/Löschen von Artikeln (wobei taskarticle.publish usw., was bedeutet, dass der Controller bei controllers/article.php und der Funktion publish() und anstelle einer dedizierten Ansicht nur zur Listenansicht zurückleitet).

Weitere Informationen darüber, wie alle Joomla MVC-Teile zusammenpassen, finden Sie unter dieser Wiki-Artikel .

Viel Glück!

9
codinghands

Joomla MVC folgt einer Namenskonvention zur Auswahl der Datei- und Klassennamen.

This folder holds additional controllers, if needed by the application.

   /site/controllers/{controllername}.php
   This file holds the controller class {ComponentName}Controller{ControllerName}. This class must extend the base class JController.

Weitere Informationen finden Sie in Joomla Docs, hier

2
Anibal

Wenn mit allen Controllern alles außer controller.php gemeint ist, funktioniert das Ablegen in diesem Ordner einwandfrei. Sie rufen einen bestimmten Controller mit der Taskvariablen auf. Wenn Sie beispielsweise die Speichermethode des Employer Controllers aufrufen möchten, setzen Sie die Aufgabe auf Employer.save

Ich hoffe das hilft. Fröhliches Joomla! Ng

1
Mathew Lenning