Creando Componentes en Joomla

Tweet about this on Twitter0Share on Facebook0Share on Google+0Share on LinkedIn0Pin on Pinterest0

Parte I: Estructura

Joomla tiene muchos componentes que podemos usar para realizar las funcionalidades que muchas webs necesitan, pero hay casos en que el componente necesario no existe o no hace exactamente lo que queremos, para ello necesitamos adaptarlo o crearlo.

Para crear o modificar un componente tenemos que tener clara su estructura, joomla se basa en el patrón MVC ( Model View Control). Esto significa que estructura el código en 3 modulos.

mvc2 Módulo Control es el que se encarga del control de la aplicación, de ir llamando a los otros dos módulos y del control de datos de uno a otro.

El módulo Model es el encargado de tratar los datos, acceder a la base de datos y pasarle esos datos de vuelta al módulo control.

El módulo View es el que se encarga de todo lo referente a mostrar la información por pantalla y de gestionar los templates.

Esa era la teoría de la estructura, ahora  os voy a explicar cómo esa estructura ideal de la que tanto hemos oído hablar se plasma en los archivos y directorios de una página.

Esta estructura es la misma tanto para un componente de backend como uno de frontend. Solo cambiaria el directorio desde el cual cuelga, siendo /components para un componente del frontend y /administrator/components para uno del backend. Aparte se puede especificar en los archivos si tendrán acceso restringido o no.

arbol
El directorio principal del componente se llamara com_. El  nombre del componente será el que nosotros queramos definir, dentro del directorio deberá haber un archivo con el mismo nombre y un controller, aparte de los directorios models y views.

El archivo con el mismo nombre del componente cargará la clase controller “JController”, que como hemos visto antes será la parte de Control del aplicativo.

Para acceder al componente y a los diferentes métodos, lo haremos a través de la url, especificándolo de la siguiente forma:

Frontend:http://www.pagina.com/index.php?option=&task=
Backend:http://www.pagina.com/administrator/index.php?option=&task=

Donde el parámetro task indica la función que querremos ejecutar de la clase controler, sino especificamos ese parámetro por defecto ejecutará la función display.

Dijimos que hay 2 directorios que cuelgan directamente del componente, el views y el models, como bien dice su nombre serán los correspondientes a la parte de View y Model del componente respectivamente.

En el directorio models, tendremos diferentes archivos y diferentes clases tipo “JModel”, podremos escoger cual queremos usar con el comando: ”$modelo =& $this->getModel(nombre1);”

El otro directorio es el views, contiene un directorio por cada una de las vistas que queremos. En esos directorios encontraremos las clases “Jview” que son las diferentes vistas que puede tener nuestra aplicación y estarán dentro de un archivo que llamaremos “view..php”. Podemos escoger cual de ellas usar mediante este comando “JRequest::setVar(‘view’, ‘nombre1’);” o especificado desde el url con el parámetro pasado por get view, ejemplo: &view=nombre1″>http://www.pagina.com/index.php?option=&view=nombre1

También podemos escoger a través de la url el formato especifico de la vista:
http://www.pagina.com/index.php?option=&view=nombre1&format=

Dentro del mismo directorio de la vista, tendremos un subdirectorio llamado tmpl, donde albergaremos los templates de esa vista. Podremos escoger que template usar con el siguiente comando: “JRequest::setVar(‘layout’, ‘nombre1’);”

Tweet about this on Twitter0Share on Facebook0Share on Google+0Share on LinkedIn0Pin on Pinterest0
<< Post Anterior
Post Siguiente >>

Leave A Response

* Denotes Required Field