SPIP-Contrib

SPIP-Contrib

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

286 Plugins, 197 contribs sur SPIP-Zone, 603 visiteurs en ce moment

Accueil > Outils pour plugins > À propos des plugins > Passer un plugin SPIP 3.0 vers SPIP 3.1

Passer un plugin SPIP 3.0 vers SPIP 3.1

6 février 2016 – par b_b, Cerdic, erational, Guytarr, JLuc, tcharlss – commentaires

3 votes

SPIP 3.1 est une version de maintenance de SPIP 3.0, se reporter à l’article pour le détail complet.

La mise à jour des bibliothèques Javascript embarquées et certaines évolutions peuvent faire qu’un plugin compatible SPIP 3.0 ne fonctionne plus ou présente des problèmes avec SPIP 3.1.

Aussi il ne suffit pas d’augmenter la borne de compatibilité dans paquet.xml : il faut le tester soigneusement avant de le déclarer compatible SPIP 3.1.

Voici la liste des points à vérifier.

1) Bibliothèques JavaScript jQuery et jQuery UI

Les bibliothèques jQuery et jQuery UI ont été mises à jour, ce changement de version peut entrainer des incompatibilités si le plugin utilise du JavaScript.

jQuery UI 1.11.2
Les scripts ont été renommés : utilisez de préférence le pipeline jqueryui_plugins pour charger les scripts, sinon en cas d’appel direct, il faut tenir compte de la nouvelle nomenclature.
Voir z83728 pour le changement et c21439 pour l’exemple d’appel à modifier.

-  Guide de migration (en)

jQuery 1.11.1
Certaines fonctions sont dépréciées et ne fonctionnent plus, d’autres ont changé de comportement :

-  .attr() → utiliser .val() ou .prop() à la place, voir le ticket correspondant.
-  .toggle()
-  .live()
-  .die()
-  jQuery.browser()

Un cas relativement courant est l’utilisation de .attr().
Sous linux, on peut repérer les fichiers JavaScript employant la fonction au moyen de la commande grep (depuis le répertoire du plugin) :
grep -r --color ".attr()" --include="*.js"

Guides de migration et notes de version :
-  jquery 1.8 (en)
-  jQuery 1.9 (en) + guide de mise à jour (en)
-  jQuery 1.10 (en)
-  jQuery 1.11 (en).

2) Formulaires CVT

Vérifier (php)
L’étape CVT vérifier retourne automatiquement un message d’erreur général en présence d’erreurs : « Il y a N erreurs dans votre saisie, veuillez vérifier les informations. » (accessibilité)
Si on n’en veut pas, il faut definir soit même message_erreur dans le retour avec une chaine vide ou personnalisée.
Cf. r21643

Traiter (php)
L’étape CVT traiter doit obligatoirement retourner un tableau.
L’ancienne syntaxe qui acceptait de retourner une chaine (string) ne passe plus, sinon on obtient un double message.
D’autre part, on peut maintenant renvoyer à la fois un message_erreur un message_ok en sortie.

Boutons (html)
Les <button> dans les formulaires doivent obligatoirement avoir un attribut type="submit" pour que leur valeur soit prise en compte.
On en trouve par exemple dans les squelettes des listes qui permettent d’associer ou de dissocier des objets : prive/objets/liste/[objet]_associer.html

3) Jointures

Dans les boucles, certaines jointures se comportent différemment, le résultat des boucles utilisant des jointures un peu "complexes" peut changer voir échouer dans certains cas.
Cf. https://core.spip.net/issues/3628 et https://core.spip.net/issues/3654.

4) Manipulation des logos

La façon de manipuler les logos a évolué : action/iconifier.php a été supprimé au profit de action/editer_logo.php (voir en ligne).

Cette nouvelle API permet de modifier ou supprimer le logo d’un objet, elle est utilisée dans le formulaire d’édition des logos prive/formulaires/editer_logo.php (voir en ligne).

Nouvelles fonctions :
logo_supprimer($objet, $id_objet, $etat)
logo_modifier($objet, $id_objet, $etat, $source)

Cf. r21682

5) Balise #FICHIER

La balise #FICHIER retourne le chemin depuis la racine partout en SPIP 3.1 alors qu’elle ne le faisait que sur la boucle DOCUMENTS en 3.0 (https://core.spip.net/issues/3108). Ça permet généralement de simplifier les squelettes.

Pour la compatibilité SPIP 3.0 des plugins on peut ajouter une déclaration pour que #FICHIER fonctionne dans SPIP3.0 comme dans SPIP3.1 dans les boucles, ainsi que le fait le commit 89763 :

  1. if (version_compare($GLOBALS['spip_version_branche'], '3.1-alpha', '<')) {
  2. if (!isset($interfaces['table_des_traitements']['FICHIER'])) {
  3. $interfaces['table_des_traitements']['FICHIER'] = array();
  4. }
  5. $interfaces['table_des_traitements']['FICHIER']['visuels'] = 'get_spip_doc(%s)';
  6. }

Télécharger

Une fois testé et approuvé

On le répète : ne déclarez un plugin compatible SPIP 3.1 qu’après l’avoir testé précautioneusement !
Un plugin déclaré compatible à tort causera bien du souci aux utilisateur.trices.

Une fois sûr.e de vous :

  • changez le numéro de la borne dans paquet.xml
  • changez le numéro le z du x.y.z pour faciliter la mise à jour via SVP
  • Ajoutez le tag SPIP 3.1 dans la documentation de contrib.spip.net

Dernière modification de cette page le 6 février 2016

Retour en haut de la page

Vos commentaires

Répondre à cet article

Qui êtes-vous ?
  • [Se connecter]

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

  • Coche Mots

    12 mars 2013 – 32 commentaires

    Ajoute une icône au formulaire d’ajout de mots-clés affichant une liste de cases à cocher de tous les mots-clés d’un groupe. D’après une idée originale de Sébastien, voir Choix des mots clés dans une fenêtre. Objectif Lorsque l’on doit associer (...)

  • Gravatar

    31 juillet 2009 – 70 commentaires

    Un plugin pour afficher le gravatar d’un auteur ou d’un contributeur de forum.

  • Plugins Giseh

    26 novembre 2010 – 372 commentaires

    Les plugins correspondants aux fonctionnalités de Giseh, compatibles avec SPIP 3.0 (et SPIP 2.1), sont les suivants : le plugin « ciparam : Configurateur de squelettes » le plugin « cisquel : Squelettes de base avec 3 colonnes » le plugin «  (...)

  • Étiquettes

    18 avril 2008 – 59 commentaires

    Générer des formulaires pour ajouter facilement des mots-clés à tout et n’importe quoi.

  • Champs Extras 3

    16 janvier 2012 – 507 commentaires

    Ce plugin permet de créer et/ou de gérer des champs supplémentaires dans les objets éditoriaux de SPIP. Il permet donc de prendre en compte et d’afficher de nouveaux éléments dans n’importe quel objet éditorial de SPIP. Screencast Vous n’aimez pas (...)