SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano

273 Plugins, 191 contribuciones sur SPIP-Zone, 105 visitantes en este momento

Portada del sitio > Contribs à ranger > Español > Documentación > Escribe un plugin (SPIP 1.9)

Escribe un plugin (SPIP 1.9)

19 de febrero de 2006 – por Martin Gaitan

2 votes

SPIP 1.9 introducirá la noción de « plugin », que ya se puede probar en la versión de desarrollo (SVN). He aquí un ejemplo muy simple de plugin.

La idea (propuesta por Olivier) es instalar, por el método de los plugins, un nuevo atajo en la función typo(). Este atajo permitirá obtener una palabra extraída de un fichero de traducción.

El plugin se llamará toutmulti.

La sintaxis elegida es la de los bloques de traducción tal como se los utiliza en los esqueletos: <:toto:> significará «buscar la palabra cuyo código es toto, e indicarlo en la lengua corriente». Así <:date_mois_9:> se indicará « Septiembre » si se está en un artículo en español, y « Wrzesień » si es un artículo en polaco.

Para programar un plugin capaz de administrar este nuevo recurso, se va a comenzar por duplicar el plugin «ancres» que se encuentra en el directorio plugins/ancres/. Se vuelve a copiar pues este directorio bajo el nombre plugins/toutmulti/.

Se compone de un único fichero, plugins/toutmulti/version.php, que se editará simplemente modificando la expresión racional (regexp) de lo que se busca, así como la línea que efectúa la sustitución.

He aquí un pedazo significativo de código extraído del plugin « ancres » :

function ancre($texte) {
        $regexp = "|\[#?([^][]*)<-\]|";
        if (preg_match_all($regexp, $texte, $matches,
        PREG_SET_ORDER))
        foreach ($matches as $regs)
                $texte = str_replace($regs[0],
                '<a name="'.entites_html($regs[1]).'"></a>',
                $texte);
        return $texte;
}

y aquí la función « toutmulti » :

function toutmulti($texte) {
        $regexp = "|<:([^>]*):>|";
        if (preg_match_all($regexp, $texte, $matches,
        PREG_SET_ORDER))
        foreach ($matches as $regs)
                $texte = str_replace($regs[0],
                _T('spip/ecrire/public:'.$regs[1]),
                $texte);
        return $texte;
}

Hay que señalar que este plugin es tan simple que se decidió permitir a SPIP cargar a cada llamado de página la función que efectúa la sustitución (function toutmulti()) , incluso cuando no se llama a la función (página ya en caché, por ejemplo). Es preferible, en términos de resultados, definir la función en un fichero secundario. La última línea del plugin (que se encuentra aquí comentada) sirve para precisar qué fichero llamar, en este caso, para encargar esta función solamente en caso de necesidad..

Queda por explicar la primera línea:

$GLOBALS['spip_pipeline']['pre_typo'] .= '|toutmulti';

Ésta indica que se quiere hacer esta sustitución en el punto de entrada pre_typo, que es invocado antes del tratamiento tipográfico (y es mejor, ya que el carácter « : » del recurso se activa por el tratamiento tipográfico normal).

* * *

Para instalar el plugin, es suficiente con colocar la carpeta toutmulti dentro de plugins/. Es necesario a continuación activar el plugin; SPIP no ofrece aún interfaz gráfica para eso: es necesario añadir, en ecrire/mes_options.php3, la línea siguiente :

<?php
$plugins[] = 'toutmulti';
?>

Eso es todo!

Espero que este pequeño tutorial les de el deseo de dar una vuelta por el Spip Zone y su directorio de plugins que también está esperando los tuyos!

Aquí, para terminar, el código completo:

Volver arriba

Comentar este artículo

¿Quién eres?

Pour afficher votre trombine avec votre message, enregistrez-la d'abord sur gravatar.com (gratuit et indolore) et n'oubliez pas d'indiquer votre adresse e-mail ici.

Añade tu comentario aquí Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Añadir un documento

Volver arriba

Hablando de eso...

  • (fr) Plugin SPIPAL

    10 janvier 2011 – 79 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Pour intégrer un système de paiement immédiat via PayPal à certains de vos articles . Ce plugin est une mise à niveau pour la version SPIP 2.1.8 du Plugin GoPayPal qui était resté en SPIP 1.9.2 depuis 3 ans. Il change de nom pour ne pas faire trop de (...)

  • (fr) Le menu déroulant Babbibel

    2 juin 2009 – 303 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Un menu déroulant horizontal en jQuery sans limitation de profondeur et configurable avec CFG.

  • (fr) Traductions d’articles autrement 3

    8 octobre 2011 – <blink style='color:red;'>public|spip|ecrire:commentaire</blink>

    Adaptation pour SPIP 3 du plugin Traductions d’articles autrement Ce plugin modifie légèrement l’interface de SPIP afin de rendre la traduction des articles plus aisée. Principe Des liens de langues, affichés en haut de l’article, permettent de (...)

  • (fr) Brownygreen

    3 février – <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Un thème simple de couleur marron et vert, en largeur fixe, constitué de 2 colonnes avec une en-tête facilement personnalisable. Présentation Adaptation de Versatility par E-cosystems. Si vous utilisez le plugin Menus, une navigation principale (...)

  • (fr) Corbeille

    2 novembre 2008 – 27 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Un plugin pour retrouver les éléments supprimés dans la corbeille.