it-swarm-es.tech

Múltiples controladores en Joomla

Soy un novato de Joomla y estoy tratando de descubrir cómo controlar MVC en Joomla. He leído esto "Desarrollo de un componente MVC" en el tutorial básico de Joomla y entiendo que el controlador principal se encuentra en components/com_component/controller.php y otro archivo es components/com_helloworld/helloworld.php que apunta a controller.php archivo para ejecutar la solicitud. La pregunta es, quiero crear una nueva carpeta controller y poner todos controllers en esa carpeta como a continuación. ¿Como hacer eso? Controllers folder

Cualquier consejo es realmente apreciado. ¡¡Muchas gracias!!

4
SonDang

Creo que estás confundiendo el propósito de tu controlador principal/maestro (controller.php) Y subcontroladores (todo en la carpeta /controllers). Para más información sobre esto, vea los documentos .

El controlador principal generalmente se usa para hacer lo que menciona en su comentario (renderizar una vista basada en el parámetro view, generalmente especificado en la URL). En controller.php, La función que hace esto se llama display(). Entonces la siguiente URL:

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

Resultará en llamar a la función display() en controller.php Y cargará la vista test en /views/test.

Los subcontroladores, en la carpeta controllers, generalmente se usan para tareas CRUD, pero se pueden llamar fácilmente usando un parámetro de URL task. Por ejemplo:

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

Resultará en llamar a la función process() en /controllers/test.php - observe que el parámetro task es <controllerName>.<functionName>

Verá que esto se usa mucho para realizar acciones que no necesitan una vista, por ejemplo, en com_content Para publicar/registrar/finalizar/eliminar artículos (donde task es article.publish etc., lo que significa que el controlador en controllers/article.php y la función publish(), y en lugar de una vista dedicada, el controlador simplemente redirige a la vista de lista).

Para obtener más información sobre cómo encajan todas las piezas de Joomla MVC, consulte este artículo wiki .

¡Buena suerte!

9
codinghands

Joomla MVC sigue una convención de nomenclatura para elegir el archivo y los nombres de clase.

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.

Encontrará más información en Joomla Docs, aquí

2
Anibal

Si por todos los controladores te refieres a todo menos controller.php, entonces colocarlos en esa carpeta funcionará bien. Llama a un controlador específico con la variable de tarea. Por ejemplo, si desea llamar al método de guardar del controlador del empleador, establezca la tarea en empleador.

Espero que esto ayude. Feliz Joomla! Ng

1
Mathew Lenning