SPIP-Contrib

SPIP-Contrib

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

286 Plugins, 197 contribs sur SPIP-Zone, 196 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

5 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 ( Ibid.).

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 1er septembre 2016

Retour en haut de la page

Vos commentaires

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

  • Cycle2

    7 août 2014 – 104 commentaires

    La seconde version de la librairie Javascript « jQuery Cycle », qui permet de produire des diaporamas, se nomme « Cycle2 » : http://jquery.malsup.com/cycle2/. Voici cette nouvelle librairie mise en plugin pour SPIP. Si vous utilisez déjà « jQuery (...)

  • CleverMail

    20 janvier 2010 – 635 commentaires

    CleverMail est un plugin permettant d’envoyer des lettres d’informations à des abonnés depuis SPIP. Issu au départ d’un développement libre complètement indépendant de SPIP, il a connu une première version pour SPIP 1.9 avant d’être complètement réécris (...)

  • SPMC : Squelette par mot clé V2.0

    21 septembre 2009 – 48 commentaires

    Ce plugin prend la suite de squelette par mot clef V1.92 qui ne fonctionnait plus sous SPIP 2.0.x. Avec l’accord de Mortimer qui n’a plus le temps de le maintenir, je prend donc la suite. Présentation du plugin « Squelette par mot clé V2.0 » Le (...)

  • Sarka-SPIP 3

    15 septembre 2009 – 211 commentaires

    Si la lignée 3 de Sarka-SPIP a été l’occasion de refaire presque entièrement le code du squelette elle continue à évoluer et à s’améliorer au fil des versions. Nous ne saurions trop conseiller aux nouveaux utilisateurs - et aussi aux anciens - (...)

  • Paiement avec Formidable

    16 février 2015 – 53 commentaires

    Ce plugin « Paiement avec Formidable » permet d’ajouter une étape de paiement à la fin de la saisie d’un formulaire créé par le plugin Formidable. Il le complète et nécessite par ailleurs le plugin bank qui gère l’interface technique avec les prestataires (...)