Carnet Wiki

Migrer de SPIP 3.2 à SPIP 4.0 : le livre de cuisine

Version 20 — Mai 2021 — 86.193.xx.xx

Autres liens
-  Annonce SPIP 4 alpha : https://semestriel.framapad.org/p/spip3.3-alpha
-  Documentation déjà publiées sur spip.net, portant sur des améliorations des balises, critères ou filtres pré-existantes : https://www.spip.net/spip.php?page=recherche&recherche=%22spip+3.3%22
-  Documentation en attente de publication, portant sur de nouvelles balises, critères ou filtres : https://spip.net/ecrire
-  Documentation sur https://programmer.spip.net concernant SPIP 4 alpha : https://www.spip.net/spip.php?page=recherche&recherche=%22spip+3.3%22

Attention : dans la documentation, SPIP 4 est encore appelé SPIP 3.3 le plus souvent.

Avant de mettre SPIP à jour

  • Vérifier votre version de PHP. Il faut PHP 7.3 minimum pour passer à SPIP 4.
  • Ne pas oublier de mettre à jour les plugins, notamment SPIP-Bonux en version >= 3.7.1 pour éviter un conflit.
  • Vérifier la compatibilité 4.0 des plugins dans les fichiers paquet.xml (ou bien rajouter temporairement define('_DEV_VERSION_SPIP_COMPAT',"3.2.99"); dans mes_options)

Proposition d’ordre de migration

  1. Faire une sauvegarde ! (contenu & bdd)
  2. Faire vos tests dans une copie du site (ou acceptez l’audace directement)
  3. Migrer votre SPIP 3.2 dans sa dernière version stable si ce n’est pas déjà le cas >= 3.2.11 (il sera compatible jusqu’à PHP 7.4)
  4. Mettre à jour les plugins (particulièrement SPIP-Bonux en verison >= 3.7.1)
  5. Basculer votre hébergement en PHP 7.3 ou 7.4
  6. (optionnellement pour tests) Définir la constante define('_DEV_VERSION_SPIP_COMPAT',"3.2.99"); dans mes options
  7. Installer SPIP 4.0 par dessus (via Spip-loader, checkout ou spip-cli)
  8. Supprimer plugins-dist/breves, organiseur, petitions, squelettes-par-rubriques
  9. Se connecter à écrire et effectuer la migration de base de données
  10. Aller dans l’interface d’administration des plugins, et ajouter le dépot principal des plugins ainsi que le dépot https://files.spip.net/core/archives.xml
  11. Lancer une mise à jour des plugins
  12. Retélécharger éventuellement les plugins breves, organiseur, petitions, squelettes-par-rubriques si vous les utilisiez avant.
  13. Tester tout ça...

Changement de gestion des documents

-  Les logos sont rangés comme les documents. Qu’est ce qui change et quelles conséquences ça a ? Qu’est ce qui se passe au juste pendant l’upgrade ? Les anciens logos sont déplacés ? Qu’est ce qui est géré automatiquement et qu’est ce qu’il reste à faire à la main ?

-  Les modèles d’insertion dans les textes changent. Quelles sont les changements ? Comment gérer sur des squelettes existant pour avoir le même rendu ?

-  Ya plus de portfolio. Est-ce que quelque chose est géré pendant l’upgrade pour assurer la compatibilité ? Avec les squelettes existants, certaines images ou documents disparaissent ils de l’affichage public ? Et d’autres documents ou images apparaissent telles alors qu’elles n’étaient pas visibles auparavant ? De quels critères est-ce que cela dépend ? Comment faire pour maintenir le fonctionnement et l’apparence précédents ?

Mise à jour des plugins et squelettes

Pagination : changement de syntaxe et d’arguments


-  En SPIP 3.2 on écrivait

[<p class='pagination'>(#PAGINATION{prive})</p>]

-  En SPIP 4., il faut :

[<nav class='pagination' role='navigation'>(#PAGINATION)</nav>]

Le changement porte sur la balise englobante, qui doit désormais être un nav
ET sur les arguments.
Il n’existe plus qu’un seul modèle de pagination, et les différences de pagination se font en lui passant des arguments :
-  afficher_lien_precedent=oui pour afficher le < vers les résultats précédents
-  afficher_lien_suivant=oui pour afficher le >
-  page=oui (à confirmer) pour afficher les n° de page
-  rang=oui (à confirmer) pour afficher les rangs des réponses
-  encore 1 ou 2 arguments à repêcher

De plus, la détection automatique de l’espace privé permet de paramétrer la pagination adaptée sans qu’il soit nécessaire de passer ce choix en argument.

N.B. Le nouveau code pour SPIP 4.0 fonctionne avec SPIP 3.2, on pourra donc, pour assurer la compatibilité (des squelettes, mais aussi des plugins), conserver l’argument de l’ancienne version ainsi :

[<nav class='pagination' role='navigation'>(#PAGINATION{prive})</nav>]

Structure html des formulaires

FORMULAIRE_INSCRIPTION : changement de syntaxe

  • La legend porte la classe .label
  • Le fieldset porte la clase .editer

Les arguments changent, surtout le 3e argument. Voir dans le forum de la partie privée sous la doc sur spip.net.

Images

Beaucoup d’images du privé au format gif ou png ont été transformé en SVG.
A priori rien à faire car SPIP détecte et s’adapte en créant un SVG à la taillle demandée.

Par contre certaines images (deplierhaut.gif, ....) ont été entièrement supprimées.

Si on veut faire les choses proprement :
-  on peut supprimer tous les png
-  on faut ajouter une icone au format SVG avec la convention de nommage suivante :
monplugin-64.png -> monplugin-xx.svg.
-  ( quelques conseils pour le graphisme des icones)

Complément


-  voir les forums de la doc en cours sur spip.net

Retour à la version courante

Toutes les versions