Componente para Joomla! 3: Comenzando el desarrollo

Escrito por | 01 Agosto 2013 | Publicado en Agosto 2013
Para tener un buen ejemplo de trabajo en esta serie de tutoriales sobre el desarrollo de componentes en Joomla! 3.0, se ha elegido escribir realmente una extensión. El objetivo es escribir un componente sólido, más allá de un componente simple "Hello World" para demostrar plenamente los puntos clave en el desarrollo de un modelo real.

Paso 0: Hacer café

Una vez más, es importante empezar el día y el proyecto con el pie derecho. Entrar en un patrón, un ritmo y pronto encontrará su creatividad, concentración y habilidades de codificación listos para empezar a trabajar. 

Paso 1: Escribir el entorno básico de los archivos necesarios del componente 

Lo primero que debe hacer es crear una visión general de los archivos, carpetas, tablas de la base de datos y campos asociados. Por nuestra parte vamos a crear el siguiente sistema.

Detalles del componente

Nombre: Lendr
Nombre del Componente: com_lendr
Descripción: Lendr es un componente bootstrapped para Joomla! 3.0, que permitirá a los usuarios crear un perfil, agregar sus libros a su colección de la biblioteca, ver otras bibliotecas de otros usuarios, solicitar un libro prestado, añadir libros a su lista deseada, y regístrarse para estar en una lista de espera para un libro en particular.

Funciones básicas

Esta nuevo componente "Lendr" proporcionará el siguiente conjunto de características:

  • Cuentas de usuario / perfiles básicos
  • Libros / Bibliotecas para usuarios
  • Listas de Deseos para los libros deseados
  • Préstamos de libros
  • Pedir prestado un libro
  • Las listas de espera para un libro que ya prestaron

Ahora debemos escribir la estructura básica de los archivos necesarios. Esto no será una lista completa y puede ser modificada a medida que avancemos a través del proceso. Sin embargo, tener un esquema de partida ayudará a mantener las cosas un poco ordenadas. Aquí está el primer esbozo de archivos necesarios para Lendr.

Archivos básicos

Controllers Models Views Tables Misc.
Save Book Book Book Install
List Default Wishlist Wishlist Router
Add Library Library Library XML
Edit Profile Profile Waitlist  
Lend Review Waitlist Review  
Delete Waitlist Review    
Wish Wishlist      
Review        
Request        
Default        


Ahora que tenemos esto por escrito en un esbozo, comenzamos la creación de estos archivos en nuestra estructura de carpetas.

Paso 2: Escribir los archivos de las tablas para la base de datos

Comenzamos creando los archivos de las tablas para la base de datos. Almacenamos estos en la carpeta tables situada en la parte frontal de nuestro componente. Creamos cada uno de los archivos que describimos en nuestro esquema. A continuación se muestra uno de estos archivos.

/joomla_root/components/com_lendr/site/tables/book.php [Ver el código]

En nuestro caso, el archivo de la tabla tiene una única función. Esta función proporciona el nombre de la tabla asociada con este archivo JTable y también define el campo de la llave principal, book_id , en este archivo.

Al crear estas tablas de la base de datos es conveniente iniciar el proceso de creación del script install.mysql.sql que se utilizará cuando el componente se instala a través del panel de administración de Joomla!. El comienzo de dicho fichero es el siguiente:

/joomla_root/administrator/components/com_lendr/admin/install.mysql.sql [Ver el código]

Continuaremos añadiendo líneas a este archivo durante todo el proceso de creación de nuestras tablas.

Paso 3: Creación de carpetas y archivos del componente

Después de crear las tablas de la base de datos, establecimos nuestra estructura de archivos de todo el componente. A continuación se muestra la estructura de directorios básica.

com_lendr/
      admin/
           controllers/
           models/
           views/
           index.html
           install.mysql.sql
           lendr.php
      site/
           assets/
           controllers/
           helpers/
           language/
           models/
           tables/
           views/
           index.html
           lendr.php
           router.php
install.php
lendr.xml

Cada uno de estos archivos y carpetas son importantes, aunque no todos son obligatorios. Vamos a empezar a trabajar a través de cada uno de estos archivos y las funciones que contienen. En el camino vamos a explicar el propósito de cada uno.

Paso 4: Escribir los archivos de instalación, el archivo raíz, controladores y controladores de las vista

En este paso vamos a añadir contenido a varios archivos. En primer lugar vamos a ver los archivos de instalación y, a continuación vamos a trabajar con algunos controladores y, finalmente, vamos a añadir nuestros controladores de las vista.

Archivos de instalación

Son los archivos utilizados por Joomla! durante el proceso de instalación. Se encuentran fuera de la carpeta "site" y "admin" del componente. El archivo .xml se utiliza para definir los detalles del componente, los archivos asociados, menús y lenguajes. El archivo install.php tiene una serie de funciones que se ejecutan después de la instalación. El nombre no tiene que ser especifícamente este, pero si debes de hacer referencia a él, correctamente, en el archivo XML. Las funciones no tienen que ser utilizadas o incluso presente, pero se pueden utilizar para realizar acciones adicionales durante la instalación del componente.

Archivos de ejemplo

lendr.xml [Ver el código]
install.php [Ver el código]

Archivo raíz (lendr.php)

El archivo lendr.php en la raíz de la carpeta "site" es el primer archivo reconocido y leído por Joomla! después de la instalación. Este archivo se encarga de la reorientación de las tareas a otros controladores, la carga de los archivos helper, hojas de estilo, javascript, librerias de plugins y otras piezas básicas necesarias a lo largo de todo el componente. Esto lo veremos con más detenimiento en futuros tutoriales de esta serie.

Este archivo cargará las tablas asociadas a este componente; importará los plugins que existen en el grupo de plugins "lendr"; determinará el controlador solicitado por el usuario y luego ejecutará el controlador apropiado según la solicitud.

Controllers (Controladores)

Los controladores en un componente para Joomla 3, se crean como una clase con una sola función. Normalmente, el nombre del controlador define la tarea del controlador. Esto se aparta de las otras versiones de Joomla, donde un controlador se dedicaba a una variedad de tareas, relacionadas con un área en particular del componente. Mediante la creación de controladores con una única función ejecutable, hay una mayor oportunidad para encadenar los controladores formando un fácil seguimiento del camino trazado por una acción, logrando así resolver de manera fácil problemas en el componente. A continuación se muestra uno de los controladores que vamos a definir para Lendr, seguido por nuestro controlador por defecto para algunas funciones básicas.

Ejemplo

edit.php [Ver el código]
default.php [Ver el código]

View Controllers (Controladores de las Vistas)

Joomla es un poco particular en cuanto a la forma en que las vistas son manejadas. Joomla hace uso de un controlador secundario para ayudar en el aspecto del renderizado de los datos y la asignación de las variables que se utilizarán en los diseños de la vista. Este controlador secundario se encuentra en la carpeta "views" del componente y, a menudo tiene el mismo nombre del tipo de render deseado (por ejemplo html.php para el renderizado html, phtml.php para renderizar una plantilla parcial, raw.php para renderizar datos tal cual, etc ..). A continuación se muestra uno de los controladores de vista utilizados por Lendr.

Ejemplo

html.php [Ver el código]
raw.php [Ver el código]

Paso 5: Crear los modelos (Models)

Los modelos en Joomla trabajan como la mayoría de los sistemas de MVC y manejan la mayor parte de la manipulación de datos y recuperación de datos. los modelos de Lendr se centrarán en gran medida en el siguiente tutorial así que aquí vamos a ver sólo la estructura general.

Ejemplo

book.php [Ver el código]
default.php [Ver el código]

Estos modelos son sólo dos de los archivos que vamos a crear para el componente Lendr. Los otros modelos son similares en naturaleza y tienen la misma estructura básica, pero se escribirán con más detalle en el siguiente tutorial.

Conclusiones

Ahora que hemos creado la estructura básica de las carpetas en el componente, escrito las tablas de la bases de datos, archivos de instalación, controladores, controladores de vista, y los modelos de nuestro componente ya puede ser instalado. Por supuesto, mientras que no haya ninguna funcionalidad todavía y el componente se limite a crear un cascarón vacío, proporciona una satisfacción tener un componente instalable.

En el siguiente tutorial vamos a profundizar en la funcionalidad real a escribir en los distintos modelos.

Visto 28964 veces Etiquetado como Spanish, Desarrollador