SPIP 1.9 - Los Plugins

El sistema de plugins está revolcuionando las funcionalidades de SPIP sin perder su robustez y flexibilidad. Los hay de todo tipo y sabor. ¿Por qué no haces el tuyo ? Aquí una introducción al desarrollo de plugins

El sistema de plugins fue reintroducido en la versión 1.9. Este sustituye al antiguo sistema de plugins que se había probado durante la fase de la versión 1.8 y después fue descartado.

La descripción del funcionamiento del sistema de plugin es aplicable a partir de la version 1.9.

2Activar la gestion de Plugins2

La gestión se activa a partir del momento que un directorio ’plugins’ existe en la raíz del sitio (al nivel de ecrire, IMG, dist ...)
El botón de administración de los plugins está en el menú Configuración, y sólo aparece cuando lal interfaz completa se selecciona, solamente para los administradores.

Instalar un plugin
Los plugins están por el momento disponibles en spip-zone

A través de svn puede hacer un checkout del directorio _ plugins _ sobre su directorio local /plugins para instalar todos los plugins disponibles, o copiar simplemente los directorios de plugins que le interesen en su directorio /plugins.

La instalación del directorio no activa automáticamente el plugin.

Activar un plugin

Dentro del menú Configuración, Administración de plugins
SPIP detecta entonces todos los plugins instalados y los muestra en una lista.

Cada plugin tiene un desplegable que permite mostrar los detalles relativos al plugin en cuestión (versión, directorio, autor, descripción, vínculo hacia el página inicial del plugin)

Seleccionar la casilla ’ activar el plugin ’ y luego validar para que el plugin entre en funcionamiento

Cuando varios plugins están activos, se listan en el orden en que SPIP los carga. Es posible modificar este orden con las flechas que aparecen a la derecha del titulo de cada plugin.

Cuando varios plugins actúan sobre el mismo tratamiento (añadir iconos, formateado del texto...) se aplican en el orden indicado por la lista.

Cuando se establece todo

La activación de plugins pasa por una fase de comprobación de conformidad mínima (declaraciones suficientes, presencia de los ficheros que deben incluirse...) pero todo no es comprobable facilmente. Es posible que un plugin erróneo (sobre todo en este período de desarrollo) genere un error definitivo. Para recuperar el acceso al sitio «a mano» (desactivar manualmente un plugin problemático), basta con renombrar el directorio del plugin, o bien suprimir las escrituras charger_plugin_xxx.php del directorio ecrire/data,

Crear un plugin

2Cómo crear su plugin :2

Crear un directorio ’miplugin’ dentro de /plugins

SPIP reconocerá el plugin con ayuda de su fichero de descripción plugin.xml :

<plugin>
        <nom> <!-- Nombre del plugin -->
        Nada
        </nom>
        <auteur>        <!-- Autor del Plugin -->
        Comunidad spip-es.net
        </auteur>
        <version>
        0.1
        </version>
        <etat>
        test
        </etat>
        <description>
¡El único plugin spip del mundo que no hace nada, pero que lo hace bien!
        </description>
        <options> <!--fichero cargado a cada hit-->
        mes_options.php
        </options>
        <fonctions> <!-- fichero cargado en cada cálculo de página->
        mes_fonctions.php
        </fonctions>
        
<!--ahora clase de implementation: listado prefijado de la llamada de función Nada:: las funciones fuera de este listado no pueden llamarse. Este parámetro es obligatorio y debe ser no vacío.
        -->
        <prefix> 
        Nada
        </prefix>
        <!--  Definición de las funciones insertadas en la tubería (pipeline) ->
        <pipeline>
                <nom>post_propre</nom>
                <action>leFiltre</action>
        </pipeline>
        <pipeline>
                <nom>ajouter_boutons</nom>
                <action>ajouterBoutons</action>
                <inclure>Nada.php</inclure>
        </pipeline>
        <pipeline>
                <nom>ajouter_onglets</nom>
                <action>ajouterOnglets</action>
                <inclure>Nada.php</inclure>
        </pipeline>

        <!-- El parámetro acción es opcional: en su ausencia se llama al método de la clase que lleva el nombre del pipeline . El parámetro inclure es opcional.-->

</plugin>

2Balizas de descripción:2

  • <nom> permite definir el nombre del plugin tal como aparecerá en el panel de configuración.
  • <version>permite dar el número de versión del plugin
  • <etat> permite definir el estado del plugin, entre dev (desarrollo), experimental, test (prueba), stable (estable).
  • <auteur> permite listar a los autores del plugin. Se pueden utilizar atajos tipográficos y cadenas de idiomas en este campo.
  • <description> permite describir el objetivo del plugin. Se pueden utilizar atajos tipográficos y cadenas de idiomas en este campo.
  • <lien> permite dar un vínculo HTML hacia el homepage del plugin que da más información sobre su funcionamiento.

2Balizas de implementación:2

  • <options> permite definir un fichero que sera cargará en cada acceso.
  • <fonctions> permite definir un fichero que se cargará a cada cálculo de página.
  • <prefix> permite definir el nombre de los prefijos de función definidas por el plugin. Por razones de cohabitación sana con sus pequeños amigos plugins, todas las funciones consustanciales a su plugin deberán comenzar por este prefijo. Observe los ejemplos del plugin «Nada» para ver cómo hacer.

La única dificultad es prefijar las declaracions de función y escribir sus llamadas de función se la siguiente manera:

$truc = Nada_mi_funcion($val);.

  • <pipeline> permite definir un punto de inserción del plugin en una tubería de tratamiento. Para eso se utilizan los tags siguientes:
    • <nom> da el nombre de la tubería o inserta la llamada al plugin.
    • <action> da el nombre de la función que debe llamarse (sin el prefijo que será añadido automáticamente por SPIP).
    • <inclure> da el nombre de un fichero que debe incluirse para que la función esté disponible.

Las etiquetas <nom>, <version> y <prefix> son obligatorias. Las otras son opcionales.

Un detalle es que no es posible utilizar un nombre de función idéntico al nombre de prefijo (La funcion Nada_nada() se rechazará porque es peligrosa - para lo curiosos puedo contar la historia... -), ni tampoco los nombres de funciones « install », « uninstall » y « configure » que se reservan para evoluciones que ya se conjeturan.

Por razones de performance, se aconseja ubicar apropiadamente las funciones pertenecientes a un plugin en ficheros separados, para que solamente las funciones requeridas estén cargadas en una inclusión.

Y para más respuestas a sus cuestiones no tema observar todos los ejemplos disponibles sobre en el SPIP ZONE

Para más información, ver:

-  El anuncio en la lista spip core
-  Los plugin en el spip zone
-  los «candidatos a plugin» propuestos en el blog

Listas de tuberías (pipelines)

  • delete_tables
  • ajouter_boutons añade un botón en la barra de botones del ./ecrire. Por ejemplo:
function Nada_ajouterBoutons($boutons_admin) {
		// si es un/a adminitrador/a
		if ($GLOBALS['connect_statut'] == "0minirezo") {
		  //   se ve el botón en la barra "Edición del sitio"
		  $boutons_admin['naviguer']->sousmenu['nada_poo']= new Bouton(
			'../'._DIR_PLUGINS.'nada/ecrire/img_pack/nada-24.png', 'Nada !');

		  // y se accede a la configuración
		  $boutons_admin['configuration']->sousmenu['nada_config']= new Bouton(
			'../'._DIR_PLUGINS.'nada/ecrire/img_pack/nada-24.png', 'Nada ?');
		} else {
		  //si no, se ve un icono de más en la barra de cabecera
		  $boutons_admin['nada_poo']= new Bouton(
			'../'._DIR_PLUGINS.'nada/ecrire/img_pack/nada-24.png', 'rien !');
		}

		return $boutons_admin;
	}
  • ajouter_onglets añade un solapa sobre una página, tomando una tabla de parámetros de entrada:
    • ’data’=> la tabla
    • ’args’=> el nombre de la página desde la cual se hace la llamada
  • pre_indexation
  • pre_syndication
  • post_syndication
  • pre_typo
  • post_typo
  • pre_propre
  • post_propre

Nota del traductor: La documentación de los pipelines no está desarrollada. Para una lista exhaustiva de ellos, ver el archivo ./ecrire/inc_version.php el código correspondiente al array $spip_pipeline.

Dernière modification de cette page le 14 de diciembre de 2006

Discussion

Une discussion

Comentar este artículo

¿Quién es usted?
  • [Conectarse]

Para mostrar su avatar con su mensaje, guárdelo en gravatar.com (gratuit et indolore) y no olvide indicar su dirección de correo electrónico aquí.

Añada aquí su comentario

Este formulario acepta los atajos de SPIP, [->url] {{negrita}} {cursiva} <quote> <code> y el código HTML. Para crear párrafos, deje simplemente una línea vacía entre ellos.

Añadir un documento

Seguir los comentarios: RSS 2.0 | Atom