¿Por qué hacer un plugin?

Adaptar SPIP a sus propias necesidades a partir de la 1.9

Los esqueletos, las balizas, los bucles y los filtros

SPIP es personalizable de varias maneras. Las primeras necesidades de personalización son cubiertas por la gestión de esqueletos, archivos html que incluyen código SPIP que son almacenados mediante un sistema de directorios.

Se puede también realizar sus propios esqueletos basándose en los elementos estándar cómo las balizas y los bucles, elementos que se pueden crear y personalizar a gusto.

Si es necesario, se puede transformar el resultado de una baliza con la ayuda de filtros, funciones escritas en php dentro de un archivo llamado mes_fonctions.php.

Sin embargo, puede ser también que nuestras necesidades sobrepasen el marco clásico de un sitio sobre SPIP, como publicar artículos en Internet mediante un modo colaborativo entre redactores. Se puede dar entonces la necesidad de transformar ligera o profundamente el comportamiento de SPIP, o incluso añadir nuevos elementos editoriales, asociarlos y administrarlos a través de una interfaz personalizada o más ergonómicas.

Modificar el nucleo de SPIP

Para obtener estas personalizaciones, era necesario realizar una tarea compleja de reescritura de los archivos del núcleo, es decir, modificar el código de la distribución de SPIP. Es cierto que es perfectamente legítimo [1], pero entonces seguir las evolución de SPIP se volvía un trabajo doroloso y pesado.

A partir de la versión 1.9, SPIP se introduce una manera formal para permitir una modificación y una extensión armoniosa del código. La principal ventaja se sitúa dentro de la posibilidad de "agrupar" (y de retirar lo agrupado cuando se lo desea sin haber tocado el código de de nuestra distribución otra vez) distintas mejoras y modificaciones tan diversas como variadas. Las posibilidas son tan amplias que toda la cuestión ahora es saber como facilitar la instalación, tanto para sí mismo como para la distribución pública, de todas estas personalizaciones.

Técnicamente, la introducción de los plugins permite abrir las siguientes posibilidades :
-  todos los archivos del nucleo son sobrecargables [2] y todas las funciones invocables sistemáticamente[[Se puede invocar desde cualquier archivo una función ya existente, siempre que se haya incluido al principio del archivo el archivo que contiene la función que se quiera usar. Esto es muy potente, ya que los creadores de SPIP han realizados montones de funciones que son muy comunes y que vos no vas a tener que programar. Se puede citar por ejemplo lire_fichier (que lee un archivo), ecrire_fichier (que escribe un archivo), preg_files (que busca un archivo), todas las consultas sql y otras decenas de funciones que son simplifcadas lo máximo posible gracias a las funciones propias del código fuente de SPIP. Ver la documentación del código para más información.,
-  una interfaz de programación de aplicaciones (API) es mantenida por la definición de una serie de puntos de entrada dentro del código.

Se tiene que hacer un plugin en 4 casos :

-  Funciones y opciones : hacer un primer plugin, migrar y hacer portables las funciones y sus opciones para sí o para los demás.

-  Los puntos de entrada : inyectar, a partir de la activación de un plugin, código al núcleo de SPIP y modificar profundamente su funcionamiento.

-  Modificar los archivos nativos : ante la ausencia de un punto de entrada, modificar partes del código de SPIP sin intervernir concrétamente sobre el núcleo.

-  Reescribir su propio código : inventar su propio script para correr en conjunto con SPIP.

Si no tenés ninguno de estos objetivos en mente, no sigás con las páginas siguientes :) Sin embargo, seguramente te interese lo que pueden proveerte los plugins distribuidos líbremente.

Notas

[1Recordemos que SPIP es GPL: libertad sin restricción de uso, de estudiar su funcionamiento y de modificarlo para uso propio, de redistribuirlo y de redistribuir sus modificaciones.

[2Sobrecargar un fichero consiste en multiplicar la lectura de archivo con el fin que tome en cuenta el último valor leído. De manera muy esquemática, si sobrecargás un archivo que por valor tiene "Buen día" con otro que por valor tiene "Buenas Noches", en pantalla aparecerá "Buenas Noches" en vez de "Buen día".

Autor o autora Miguel Publicado el: Actualizado: 26/10/12

Traducciones: català, corsu, English, Español, français, italiano, Nederlands