SPIP 3.1

SPIP 3.1 est une version améliorée de SPIP 3.0, qui comprend une mise à jour des bibliothèques JavaScript embarquées, un nouvel habillage graphique pour l’espace privé et les pages publiques ainsi que de nombreuses améliorations. Sa maintenance active s’arrête le 30 juin 2019. À compter de cette date, seule les correctifs liés à la sécurité lui seront apportés.

Cette version sort trois ans après SPIP 3.0 et offre essentiellement aux développeurs :

  • une mise à jour des bibliothèques JavaScript qui accompagnent le cœur de SPIP et les plugins fournis, avec notamment jQuery et jQuery UI ;
  • une actualisation du thème graphique de l’espace public. Ce thème intègre la base CSS Tiny Typo ; Lire Présentation de la dist (SPIP3.1)
  • une actualisation légère du thème graphique de l’espace privé ;
  • des nouveautés et de nombreux bugs corrigés.

SPIP 3.1 : des nouveautés

Les rédacteurs et administrateurs pourront trouver utile :

  • un bouton supplémentaire sur les barres d’outils d’édition qui permet d’éditer le texte en plein écran, avec sa prévisualisation directe sur le côté ;
  • le lecteur multimédia HTML5 http://mediaelementjs.com fourni en standard pour lire directement vidéos et sons ;
  • l’ajout d’une vidéo calcule, ses dimensions et sa durée (intégration partielle du plugin getID3 dans le plugin médias) ;
  • les forums de discussion dans l’espace privé peuvent se greffer sur n’importe quel objet éditorial via un formulaire de configuration ;
  • les statistiques peuvent être affichées soit sous forme de graphique, soit sous forme de tableau ;
  • la page plan de l’espace privé est améliorée et permet de déplacer des éléments par glisser/déposer ;
  • une nouvelle option dans les préférences personnelles des webmestres pour afficher ou non le menu « Développement » ;
  • des améliorations de l’ergonomie du multilinguisme par secteur.

SPIP 3.1 : l’écriture des squelettes est facilitée

Critères

  • le critère {age} est modifié, code simplifié et débogué pour certaines durées ;
  • le critère {tri} accepte un 3e argument avec le nom commençant par ’session’ et indiquant que le sens et l’élément trié doivent être sauvés dans la session de l’utilisateur ;
  • le critère {branche} accepte un second argument pour préciser la ou les rubriques à parcourir.

Balises

  • la balise #MODELE accepte le paramètre env transmettant l’environnement complet ;
  • la balise #INCLURE transmet l’éventuel paramètre connect présent dans l’URL, tout comme le fait déjà l’inclusion <INCLURE...>

Filtres

Logos et images

  • filtre_inactif au lieu de no_image_filtrer ;
  • la classe .spip_logo sur les documents à la place de .spip_logos (.spip_logos supporté encore quelques temps) ;
  • l’action d’édition des logos a évolué :
    • la hauteur ou largeur maximale des logos peuvent être définies seules ;
    • si un logo ou une image téléversée dépasse la taille maximale autorisée, et que les miniatures sont autorisées, on réduit le logo ou l’image transmise à la taille maximale plutôt que renvoyer une erreur ;
  • si un document dépasse la taille exploitable par le serveur, une erreur est affichée sans poser de problème ajax.

Plugins

  • meilleure ergonomie de l’interface de gestion des plugins ;
  • nouvelles balises dans le paquet.xml ;
    • script pour ajouter un script JavaScript dans le header public ou privé ;
    • style pour ajouter un fichier CSS ;
    • genie pour exécuter une tache cron simplement ;
    • procure pour indiquer qu’un plugin procure des fonctionnalités.

SPIP 3.1 : sous le capot

Certaines modifications mineures du core peuvent intéresser les hébergeurs ou webmestres de sites SPIP :

  • les sessions anonymes de SPIP utilisent maintenant les sessions PHP ;
  • le cache des vignettes d’images est stocké dans 256 sous-répertoires (#3277), ce qui peut améliorer les performances sur les disques NAS ;
  • lors de l’utilisation d’une base MySQL, les fonctions PHP mysqli_* sont utilisées à la place des fonctions mysql_*. Il faut donc que les fonctions mysqli soient présentes sur le serveur hébergeant le site (elles sont actives par défaut dans PHP depuis la version 5.0) ;
  • les tables MySQL utilisent maintenant MyISAM par défaut (les versions récentes de MySQL s’installaient en INNODB) ;
  • la gestion du cache a été améliorée en reprenant la méthode filecache du plugin mémoization ;
  • les révisions des objets éditoriaux ne sont plus stockées de façon compressée afin d’éviter des problèmes lors de la restauration de sauvegardes de la base de données ;
  • intégration des fonctions d’import/export de fichiers CSV du plugin SPIP-Bonux ;
  • API objet_inserer() plus consistante avec le second paramètre $set ;
  • API de rôles sur les liens : aux liens entre objets peuvent être associés des rôles.

SPIP 3.1 : un code source plus beau

Un gros travail sur la présentation du code source a été effectué :

SPIP 3.1 : les performances web coté client

Dans une optique de performance, la méthode getScript de la bibliothèque JavaScript jQuery est surchargée pour utiliser le cache navigateur. En effet, par défaut, jQuery ne met pas en cache ces éléments. Il est par conséquent conseillé dans un squelette SPIP, utilisant jQuery.getScript(...), d’appliquer le filtre timestamp au fichier demandé, de sorte qu’une modification du fichier source entraîne une actualisation du cache navigateur.

Exemple :

jQuery.getScript('[(#CHEMIN{prive/javascript/ui/widget.js}|timestamp)]', function(){
...
});

Un header Link est envoyé dans les en-têtes HTTP pour annoncer la feuille de style compressée pour qu’elle soit chargée plus rapidement par le navigateur.

Bibliothèque jQL dans le plugin Compresseur

Il est également possible d’activer via la constante _JS_ASYNC_LOAD un chargement asynchrone du JavaScript compressé de l’espace public par l’intermédiaire de la bibliothèque jQL intégrée au compresseur. Il faut que les scripts « inline » soient compatibles.

Mettre à jour un site existant vers SPIP 3.1

Vérifier la compatibilité de ses plugins

Avant le lancer la mise à jour par les méthodes habituelles (FTP, Spip loader, Subversion), il est conseillé de mettre à jour ses plugins.
Le plugin suivant permet aussi de vérifier si les plugins de votre site sont bien compatibles avec SPIP 3.1
http://contrib.spip.net/Verifier-ses-plugins-pour-le-passage-a-SPIP-3-1

Passer un plugin SPIP 3.0 vers SPIP 3.1

À ce sujet, consulter l’article de spip-contrib.

Au sommaire :

  1. Bibliothèques JavaScript jQuery et jQuery UI
  2. Formulaires CVT
  3. Jointures
  4. Manipulation des logos
  5. Balise #FICHIER
  6. Une fois testé et approuvé...

Évolution des bibliothèques JavaScript

La mise-à-jour des bibliothèques JavaScript intégrées à SPIP 3.1 peut dans certains cas nécessiter une mise-à-jour des squelettes ou plugins lors d’une migration depuis SPIP 3.0. Particulièrement, pour les mises-à-jour de jQuery et jQuery UI.
Vous pouvez regarder les conseils de mise-à-jour de ces bibliothèques respectives :

Notes

[1texte de documentation précédent le code source d’une fonction, dans un format précis

Auteur L’équipe de SPIP, tofulm Publié le : Mis à jour : 19/04/23

Traductions : English, français, Nederlands