Home Programación Joomla Funcionamiento de un componente: Más difícil es la física cuántica

PostHeaderIcon Funcionamiento de un componente: Más difícil es la física cuántica

Usar puntuación: / 2
MaloBueno 

Una vez establecido el funcionamiento del modelo vista controlador, lo siguiente para poder entender el desarrollo de Joomla es la forma en la que éste trabaja. Como primer paso hay que decir que Joomla permite el funcionamiento libre, de manera que las normas que aquí se van a dar pueden cambiar, pero esto haría que todo se complicase. Si se respetan las normas básicas de desarrollo para Joomla, no solo nos aseguramos de que funcione bien, sino que además podemos asegurarnos la facilidad de exportar nuestro componente a otros sistemas e incluso a otras versiones de Joomla. Además estamos desarrollando para Joomla por lo que huelga decir que conviene seguir los estándares Joomla.

Vamos a trabajar en genérico, y para ello vamos a suponer que nuestro componente va a hacer inserciones y consultas de jugadores en una base de datos (imitando una liga).  Por lo tanto es necesario un modelo para estos jugadores así como dos vistas: una general y una concreta para mostrar los datos de un jugador. Realmente esta vista nos va a servir también para insertar un jugador ya que en principio no existe ninguna diferencia entre el formulario de creación y el de consulta, salvo, obviamente, los datos del ya existente.

No se va a especificar código (aún). Solamente se va a explicar el funcionamiento.

 

El punto de entrada a Joomla es el controlador principal: /gestorneo.php que se debe encontrar en la carpeta principal del controlador. Este controlador solo sirve para establecer el punto de entrada y simplemente redirecciona al verdadero controlador que se puede encontrar donde al programador le venga bien, pero que conviene que esté en la ruta /controllers/controller.php.

 

En el archivo gestorneo.xml se establece el menú y el submenú de nuestro controlador. En nuestro caso se añadirá un menú llamado torneo y dentro un enlace llamado jugador. Este enlace nos lleva a la vista principal: /admin/views/jugadores/view.html.php.. Esta vista llama al final a la función display que se encarga de llamar a la vista del template, el archivo /admin/views/jugadores/tmpl/default.php. Antes de llamar a la vista por defecto, el view.html.php puede llamar al controlador para hacer cualquier cosa.

Por ejemplo: Cuando cargamos la página principal de los jugadores, podemos ver, en la parte superior, los botones de acción:

Además, debajo de esta fila de botones, podemos ver una lista de jugadores. Los botones se añaden desde el view.html.php y la lista de jugadores se hace de la siguiente manera. En el controlador llamamos al modelo y en el view llamamos a una función del modelo para obtener los jugadores. Esta lista la guardamos en una variable de la clase, por lo que podremos acceder a ella desde cualquier fichero. Nosotros accederemos a ella desde el default.php para mostrar esa lista.

El botón nuevo (y cualquier botón que aparezca en la barra de botones) tiene asociada una función del controlador. La de nuevo lo que hace simplemente es llamar a una función del controlador que, tras algunas operaciones, llamará a una función del view.html.php (sí, el view llama al controlador que termina llamando al view). Finalmente en el view se llama a la vista.

En la vista lo que hay es código html (con php entrelazado) que muestra, como su propio nombre indica, lo que se verá en la página: un formulario. El formulario tiene en la parte superior un botón de insertar, que al igual que antes, llama a una función del controlador, que tras modificar los datos, llamará a una función del modelo que será la que, tras crear el query de mysql, hará la inserción.

 

Escribir un comentario


Código de seguridad
Refescar

PostHeaderIcon Más Comentado

PostHeaderIcon Últimos Comentarios

mod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_counter
mod_vvisit_counterHoy1345
mod_vvisit_counterAyer1493
mod_vvisit_counterEsta semana10644
mod_vvisit_counterLa semana pasada10142
mod_vvisit_counterEste mes27202
mod_vvisit_counterEl mes pasado44972
mod_vvisit_counterTodos los días1432772

We have: 29 guests, 1 bots online
Hoy es: Dic 16, 2017