SPIP-Contrib

SPIP-Contrib

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

273 Plugins, 191 contribs sur SPIP-Zone, 70 visiteurs en ce moment

Accueil du site > Outils pour plugins > Tutoriaux pour Plugins > OldSystemDePlugin

OldSystemDePlugin

25 octobre 2005

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !


Le système de plugin ne sera pas présent dans la version 1.8 finale. C’est à dire que tout ce qui est décrit ici n’est valable que pour les versions beta, pr et cvs de la 1.8 jusqu’au Lundi 7 Mars 2005. Après cela, Il faut revenir aux PointsEntreeIncTexte, fichiers mes_fonctions et mes_options.

La version 1.9alpha introduit un nouveau SystemeDePlugin, voir les informations sur la page dédiée, les informations ici restent obsolétes.


Retour sur la proposition de plugins : après discussion avec Arno*, cette
fonctionnalité est reportée post 1.8, et pour que personne ne vienne dire
plus tard "j’ai fait un plugin, ça marchait avant, et maintenant c’est
cassé", on la démonte complètement.

Donc, concrètement, il n’y a plus de dossier "plugins".

le principe du plug n’ play c’est sympa, mais il faut une
implementation riche, efficace, souple, etc.
Rester ouvert à tout changement de cap.


— Fil
voir RecyclerLesPlugins

La version CVS beta expérimente un système de plugin pour faciliter l’insertion de code dans le noyau de SPIP.

Pour l’instant, ce système ne permet que d’étendre les PointsEntreeIncTexte, mais rend déjà la déclaration de nouvelles fonctions typo bien plus "élégante".

Les plugins

C’est quoi un plugin ?

C’est un fichier qu’il suffit de déposer dans un sous-répertoire de SPIP pour lui ajouter une fonctionnalité.

Avantages pour le webmestre

Le but est de faciliter l’installation d’éléments « clé en main ». En effet le processus actuel basé sur l’édition du fichier mes_options.php3 présente deux inconvénients dès qu’il s’agit d’intégrer plusieurs contribs à SPIP :

  1. Chaque contrib externe a besoin de modifier le fichier mes_options pour s’installer. Il faut donc le modifier « à la main » pour fusionner les modifications nécessaires sans conflit. Ce problème est éliminé avec le dossier "plugins" qui permet de fournir des fichiers séparés pour chaque contrib.
  2. Le second problème c’est celui de la redéfinition des fonctions correspondant à des points d’entrée, telles que « avant_propre() » et autres. Chaque contrib externe risque d’entrer en conflit avec une autre contrib, tout simplement par redéfinition d’une fonctionnalité déjà définie. En réponse, le processus proposé ici permet d’utiliser des noms de fonctions différents.

Où je les mets ? Comment je les structure ?

-  Un plugin doit se trouver dans le répertoire ecrire/plugins
-  Il doit avoir un nom de fichier qui commence par plug_
-  On peut le mettre dans son propre sous repertoire de ecrire/plugins — Ainsi, on peut livrer un plugin en plusieurs fichiers ou avec des librairies.

  • le nom du répertoire est libre
  • le fichier principal doit toujours s’appeler plug_quelquechose

Comment dire à SPIP d’utiliser mon plugin ?

SPIP inclut tous les fichiers plug_...php au début de l’interprétation d’un squelette.

On peut donc y placer de nouveaux filtres, de nouvelles balises (CreerSaBalise) et toutes autres choses qu’on aurait collées dans mes_fonctions ou mes_options.

Étendre le noyau

On peut même déclarer des ajouts au noyau de SPIP. SPIP doit alors savoir à laquelle de ses fonctions appliquer ce plugin. Il y a deux choix :

-  appliquer le plugin avant la fonction,
-  l’appliquer après.

Pour ce faire, il faut indiquer à SPIP quelle nouvelle fonction appeler avant et après. Ceci se fait par un appel à la fonction completer_fonction à la fin du fichier principal du plugin.
Cette fonction prend trois paramètres :
1- le nom de la fonction à compléter,
2- le nom de la fonction à appeler avant,
3- le nom de la fonction à appeler après.

Un des deux derniers peut être vide évidemment.
E.G. : completer_fonction("propre", "avant_typo_smallcaps", "");

Une limitation actuelle est que seule la fonction propre peut être complétée.

Comment SPIP découvre mon plugin ?

C’est semi-automatique. SPIP ne regarde pas tout le temps le répertoire de plugins, ça serait plutôt inutile, vu que ce repertoire ne change que très rarement.
Pour dire à SPIP de recharger la liste de plugins, il faut et il suffit de visiter la page de configuration du site.

Exemple

le fichier ecrire/plugins/plug_small_caps.php :

<?php
// Ce plug-in ajoute le raccourci typographique <sc></sc>

function avant_typo_smallcaps($texte) {
        $texte = str_replace("<sc>", "<span style="font-variant: small-caps">", $texte);
        $texte = str_replace("</sc>", "</span>", $texte);
       
        return $texte;
}

completer_fonction("propre", "avant_typo_smallcaps", "");
?>

Autre Exemple

Remplacer les puces spip - qui insèrent une image par des puces spip -* qui génèrent une véritable liste avec des <li>.

Pierre Andrews (aka Mortimer) propose un petit plugin à mettre dans ecrire/plugins/plug_liste_propre.php

<?php
function liste_propre($texte) {
   return str_replace("n- ", "n-* ",$texte);
}

completer_fonction("propre", "liste_propre", "");
?>

Fil confirme qu’il n’y a pas de problèmes avec les parties comprises entre balises <code> et <cadre> car le filtre propre épargne le contenu de ces parties.

Les annonces spip-core

-  Dossier de plug-ins
-  completer_fonctions

FAQ

Est-ce que les filtres (y compris plugins) sont appliqués avant de passer la main à l’indexeur de SPIP ?

C’est directement le Mysql qui est indexé, les raccourcis spips sont élagués et non interpretés

Autres Exemples

-  NumerotationEtc,
-  DesSmileys filtre smileys en plugin (ou comment utiliser $flag_ecrire)

à venir :
-  CodeCouleur : Du joli code dans les articles

Retour en haut de la page

Répondre à cet article

Qui êtes-vous ?

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.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Formulaire de contact libre

    27 avril 2011 – 36 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Dans SPIP il n’y a pas un formulaire de contact, mais autant de formulaires de contact que d’auteurs. Cette phrase de Romy, dans son article Une page de contact dans mon SPIP, pointe un petit manque de SPIP. La possibilité d’insérer rapidement un (...)

  • Plugin Mot de Passe Compliqué

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

    Ce plugin ajoute un testeur de complexité de mot de passes dans les formulaires de choix de mot de passe de SPIP.

  • Navigation AJAX

    31 janvier – 18 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Ce plugin permet de modifier automatiquement une parties des liens internes de manière à ce qu’ils ne déclenchent pas un chargement complet de la page cible, mais un chargement en AJAX de certains éléments spécifiés à l’avance. Il permet aussi de (...)

  • Plugin Vidéo(s)

    23 novembre 2010 – 293 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Interface de gestion et modèle d’insertion des vidéos : Dailymotion Vimeo Youtube Modèle de la balise HTML5 video avec alternative flash html5media : Lecture HTML5/Flash pour tout navigateur des fichiers MP4/H264/Ogg/WebM/Mkv Support mobile, (...)

  • 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 (...)