Imprimir

Cómo crear y distribuir una extensión

El CMS está pensado para ser rápido, incluso a la hora de desarrollar nuestras propias extensiones.

Desde su instalación, contiene herramientas que permiten crear y distribuir extensiones de manera sencilla.

A continuación, se listan algunas de estas herramientas, y se explica su funcionamiento.

Activar el modo desarrollador

El Modo desarrollador es una configuración del sistema, que permite habilitar distintas herramientas que facilitan el trabajo de los desarrolladores.

En nuestro caso, permitirá la administración completa de los desarrolladores y de las extensiones.

Para activar el modo desarrollador, en la administración debemos dirigirnos a Configuraciones > Configuraciones > Sistema > General.

Crear un usuario desarrollador

Una vez activo el modo desarrollador, si nos dirigimos a Configuraciones > Extensiones, allí podemos acceder a la administración de los desarrolladores. Para ello, presione el botón:

 

Crear / Editar un desarrollador

El formulario para crear un desarrollador requiere los siguientes datos:

 

Principal

Nombre

El nombre del desarrollador.

Con este nombre, las distribuciones identificarán las extensiones que le pertenecen. Si en algún momento es modificado, se perderá todo vínculo con las extensiones distribuidas.

URL del projecto

Un sitio web de referencia. Este valor puede ser modificado sin problemas.

 

Tienda en línea

URL

El punto de acceso a las distribuciones, tanto para consultar la lista de aplicaciones, como para descargarlas o actualizarlas.

También, es posible utilizar la direccón para distribuir actualizaciones.

Token

Se utiliza para distribuir extensiones. El token se gestiona en la tienda en línea.

 

Predeterminados

Estos valores se utilizan, de forma predeterminada, al crear nuevas extensiones.

Créditos

Los créditos de las extensiones desarrolladas.

Licencia

La licencia legal con que serán distribuidas las extensiones.

 

Crear una extensión

En Administración > Configuraciones > Extensiones, tenemos la administración de las extensiones.

Allí podrás ver todas las extensiones instaladas y, activado el modo desarrollador, crear y administrar nuevas extensiones.

 

Crear / Editar una extensión

El formulario para crear una extensión tiene cuatro bloques:

 

Principal

Alias

El nombre con el que será identificada internamente la extensión. Todas las convenciones del CMS utilizan este identificador.

Nombre

El nombre de la extensión. Su uso es meramente descriptivo.

Abstract

Un texto descriptivo, un poco más extenso que el nombre.

 

Desarrollador

El desarrollador bajo el cual será distribuida la extensión.

 

Legales

Créditos

Los créditos del desarrollo de la aplicación. Este valor puede coincidir con el desarrollador, pero también se pude ampliar a librerías de terceros.

Licencia

Las licencias de uso del código.

Cuando se dejan vacíos estos valores, serán completados con los predeterminados para el desarrollador seleccionado.

 

Paquete

Desde

Las extensiones y versiones que requiere para su instalación en otros sitios. El formato deberá ser extension1:version;extension2:version2....

Si solo se declara un valor de versión, se entiende que se está refiriendo a system.

Es un paquete

Si se activa, la extensión puede ser compilada y distribuida por sí misma. De lo contrario, solo puede ser distribuida anexa a otra extensión.

 

Compilar una extensión

Si declaramos una extensión como un paquete, queda disponible para ser compilada y distribuida.

Para compilar, debemos seleccionar una o más extensiones:

y presionar el botón:

También, es posible compilar presionando el botón:

En algunas ocasiones, se desplegarán modales que irán preguntando si deseamos actualizar versiones. Por último, obtendremos el siguiente formulario:

Los valores por defecto serán los necesarios para distribuir.

Cómo funciona la compilación

Cuando una extensión se compila, se tienen en cuenta tres procesos: copiar los archivos, exportar la estructura de la base de datos y recolectar datos. Para ello, se utilizan tres sistemas: components, db_queries y xdata, respectivamente.

 

Copiar archivos

Copiar archivos es sencillo si los tenemos bien organizados. Para ello, utilizamos el concepto de componentes, los componentes serán carpetas con el nombre del alias de la extensión. El compilador sólo tendrá que buscar estas carpetas en los siguientes espacios:

app/

cms/libraries/

cms/plugins/

cms/scripts/

cms/snippets/

media/

vendor/

 

Exportar la estructura de la base de datos

La estructura de la base de datos incluirá tablas, funciones, procedimientos y disparadores.

Se exportarán de dos modos: como un archivo sql y como uno json. Este último modo, permite modificar las bases de datos de las distribuciones, incluido renombrar tablas y campos.

El compilador va a exportar todas las tablas cuyo nombre comience con el nombre del alias. Por ejemplo, si tenemos la extensión con el alias de nombre posts, exportará la tabla posts y todas las que se llamen posts_*.

A su vez, serán exportadas las funciones y los procedimientos cuyo nombre esté escrito en camelCase y su segundo texto sea el alias. Para el mismo ejemplo anterior, el compilador exportará createPosts o removePostsTags.

 

Recolectar datos

Todos los datos serán distribuidos a través de archivos json, ya sea que provengan de la base de datos o de archivos. Esto se hace para agregar capas de procesamiento de datos y seguridad.

Los datos pueden ser: configuraciones, menús, permisos de ususarios, activos, etc.

El sistema que los recolecta y los distribuye se llama xdata.

Un proceso de datos de los más importantes de xdata es el que permite combinar, en la instalación de actualizaciones, los datos existentes, con los datos que trae el paquete de actualización.

Distribuir una extensión

Para distribuir una extensión, primero se debe compilar y luego presionar el botón:

Para distribuir una extensión, se debe tener configurada la url de la tienda en línea y el token de acceso del desarrollador.

Registro de cambios

El registro de cambios (changelog) permite, a la hora de compilar una extensión, calcular automáticamente su número de versión.

 

Acceder a la lista de cambios

En la Administración, debe dirigirse a Configuraciones > Extensiones, seleccionar un registro y presionar el botón:

Se desplegará la lista de cambios de la extensión:

Agregar / Editar cambios

El formulario para tal fin requiere dos campos:

Descripción

Descripción del cambio.

Es compatible

Informa si el cambio es compatible con las versiones anteriores. De ser compatible, se incrementará la versión menor, de lo contrario, la versión mayor.

Historial de la base de datos

El historial de cambios permite renombrar, en las ditribuciones, las tablas y/o campos.

Si modificamos el nombre de una tabla o de un campo, debemos dirigirnos aquí, y registrar ese cambio. Al momento de compilar la extensión, este registro de cambios será exportado junto con la base de datos.

Para realizar esta tarea, se debe seleccionar una extensión, y presionar el botón:

Se desplegará un formulario con todas las tablas y campos de la extensión. A continuación, mostramos por ejemplo la extensión extensions:

*1 En Historia, se puede registrar el cambio de nombre de la tabla a renombrar.

Es posible registrar varios nombres de tablas y campos a renombrar, separándolos por una coma.

 

Anexar extensiones

Cuando, a partir de una extensión, creamos un paquete, es posible anexar otras extensiones.

Para realizar esta tarea, se debe seleccionar una extensión definida como un paquete, y presionar el botón:

Se desplegará un formulario que permite seleccionar otras extensiones.