it-swarm-eu.dev

Controller multipli in Joomla

Sono totalmente Joomla Noob e sto cercando di capire come controllare MVC in Joomla. Ho letto questo "Sviluppo di un componente MVC" nel tutorial di base di Joomla e ho capito che il controller principale si trova sotto components/com_component/controller.php e l'altro file è components/com_helloworld/helloworld.php che punta a controller.php file per eseguire la richiesta. La domanda è: voglio creare una nuova cartella controller e inserire tutti i controllers in quella cartella come di seguito. Come farlo? Controllers folder

Ogni consiglio è molto apprezzato. Grazie mille!!

4
SonDang

Penso che tu stia confondendo lo scopo del tuo controller principale/principale (controller.php) E dei subcontrollori (tutto nella cartella /controllers). Per ulteriori informazioni, vedi i documenti .

Il controller principale viene in genere utilizzato per fare ciò che menzioni nel tuo commento (renderizza una vista basata sul parametro view, solitamente specificato nell'URL). In controller.php, La funzione che fa ciò si chiama display(). Quindi il seguente URL:

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

Ciò comporterà la chiamata della funzione display() in controller.php E caricherà la vista test in /views/test.

I subcontrollori, nella cartella controllers, vengono generalmente utilizzati per le attività CRUD, ma possono essere richiamati facilmente utilizzando un parametro task URL. Per esempio:

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

Ciò comporterà la chiamata della funzione process() in /controllers/test.php. Notare che il parametro task è <controllerName>.<functionName>

Lo vedrai molto usato per fare azioni che non richiedono una vista, ad esempio in com_content Per pubblicare/archiviare/estrarre articoli (dove task è article.publish ecc., il che significa che il controller è controllers/article.php e la funzione publish(), e invece di una vista dedicata il controller reindirizza semplicemente alla vista elenco).

Per ulteriori informazioni su come tutte le parti Joomla MVC si incastrano, vedere questo articolo wiki .

In bocca al lupo!

9
codinghands

Joomla MVC segue una convenzione di denominazione per scegliere i nomi di file e classe.

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.

Ulteriori informazioni sono disponibili in Joomla Docs, qui

2
Anibal

Se per tutti i controller intendi tutto tranne controller.php, posizionarli in quella cartella funzionerà perfettamente. Si chiama un controller specifico con la variabile di attività. Ad esempio, se si desidera chiamare il metodo di salvataggio del controller del datore di lavoro, impostare l'attività su Employer.save

Spero che aiuti. Felice Joomla! Ng

1
Mathew Lenning