SPIP-Contrib

SPIP-Contrib

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

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

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

  • FB Antispam - CAPTCHA pour forums

    26 octobre 2013 – 45 commentaires

    Un simple captcha pour protéger les forums des spams qui envahissent et submergent les bons messages. Pour valider l’envoi d’un commentaire, un code à 4 chiffre doit être saisi. Description Le plugin FBCaptcha ajoute un champs supplémentaire au (...)

  • Owncloud

    24 mai – commentaires

    Ce plugin permet d’importer des documents dans SPIP en vous connectant à votre Owncloud avec Webdav. Vous devez dans un premier temps configurer le plugin en ajoutant les paramètres de connexion à webdav de votre Owncloud. Vous pouvez ensuite (...)

  • Saisies

    27 mars 2010 – 459 commentaires

    Introduction Créer un formulaire est une tâche toujours un peu répétitive : les champs ont souvent les mêmes propriétés, le même accompagnement (message d’erreur, explication, ...) et la même structure HTML. Ce plugin est un outil pour les développeurs (...)

  • Évaluations d’éléments SPIP

    5 avril 2014 – commentaires

    Ce plugin vient en complément du plugin notations, et permet de créer, d’exécuter, de suivre et d’analyser les résultats de campagnes d’évaluations d’éléments SPIP. Le plugin « notations d’éléments SPIP » nous a servi de base pour le développement du plugin (...)

  • Mot de passe dès l’inscription

    23 mai – commentaires

    Ajoute un champ pour définir le mot de passe dès l’inscription. Plus simple pour les utilisateurs/trices, et plus sécurisé. Ce plugin permet aux visiteurs qui peuvent s’inscrire de définir leur mot de passe dès la phase d’inscription, plutôt que (...)