SPIP 2.1

C’est avec un certain plaisir que l’équipe de SPIP vous annonce la sortie de SPIP 2.1

  • Apparu en : SPIP 2.1

Ce millésime 2010 s’annonce comme une cuvée exceptionnelle. Il a été fortement testé et dispose d’un jeu plus étendu de tests unitaires, qui permettent de coder de façon plus sure. Cette version 2.1 est un premier pas vers la modularisation des fonctionnalités de SPIP, et voit à ce titre l’apparition d’un répertoire « extensions ». Les plugins présents dans ce répertoire sont activés dès l’installation de SPIP et non désactivables, ce qui ouvre la voie à des distributions spécifiques de SPIP.

Principales améliorations apportées par la version 2.1

— plus rapide :

  • meilleure gestion des accès disque
  • cache sur les chemins calculés
  • améliorations et extension du serveur SQL virtuel

— plus sécurisée :

  • sha256 sur les mots de passe et actions
  • vérification du fonctionnement des .htaccess
  • détection automatique des mises à jour de SPIP

— plus belle :

  • intégration (comme extension) du plugin « porte-plume » qui améliore grandement l’édition des champs texte et offre une prévisualisation en cours d’édition
  • interface graphique par défaut plus légère et élégante
  • possibilité de définir des thèmes graphiques (comme par exemple avec le plugin « themes_interface_privee »)
  • meilleure gestion de la taille des champs texte (agrandissement conditionnel)
  • gestion (configurable et désactivable) de la transparence PNG24 sous MSIE6 sur le site public
  • retour des liens « modifier cet article » et « proposer cet article » lors de l’édition des articles
  • nouvelle interface de gestion des plugins
  • remodelage des procédures de sauvegarde/restauration
  • possibilité de créer des URL accentuées en définissant _TRANSLITTERER_URL à « false » (attention à la configuration du serveur)

— plus à jour :

  • compatibilité PHP 5.3
  • intégration de la bibliothèque jQuery 1.4.2
  • intégration de la bibliothèque pclzip 2.8.2

— plus svelte :

  • premières mises en extensions de fonctionnalités du core : compresseur (js, css, html), porte-plume (barre d’outils), filtres images et couleurs (traitement d’image), safehtml (sécurisation des forums et pétitions), support pour vieux navigateurs
  • gestion d’un nouveau répertoire (extensions/) pour y placer ces plugins actifs dès l’installation et non désactivables

— plus extensible :

  • apparition de nouveaux points d’entrée pour les plugins
  • remodelage de la gestion des plugins (et répertoire spécifique pour leur gestion : ecrire/plugins)
  • les plugins peuvent être installés dans un ou des répertoire(s) supplémentaires si définis par la constante _DIR_PLUGINS_SUPPL (facilte leur usage en cas de mutualisation)
  • possibilité d’étendre l’aide en ligne pour y intégrer des sections personnalisées et gestion automatique de ses traductions

— plus structurée :

  • mise en oeuvre d’une API d’authentification
  • amélioration de l’interface LDAP
  • refonte de l’API de notification
  • homogénéisation des balises #LOGO_ : les paramètres sont désormais passés entre accolades et disparition des « doubles pipes » (#LOGO_xxx||filtre (écriture obsolète mais toutefois encore fonctionnelle)
  • apparition de nouvelles balises et fonctions : #BOUTON_ACTION, |balise_img, |couleur_luminance (similaire à |couleur_saturation, mais agissant sur l’intensité lumineuse de la couleur)
  • possibilité pour les balises dynamiques (de type #FORMULAIRE_) de manipuler à l’exécution des valeurs qui ne sont connues que durant la compilation

— plus facile à débugger :

  • amélioration du débuggueur désormais capable d’indiquer la ligne fautive dans un squelette
  • le débuggueur informe désormais sur l’endroit précis de l’éventuelle mauvaise utilisation des balises dynamiques
  • API du débuggueur plus fonctionnelle (possibilités d’appel et de personnalisations accrues)
  • amélioration du mode inclure (?var_mode=inclure) affichant les différentes inclusions (intégration avec le plugin Skeleditor permettant de surcharger et d’éditer facilement en ligne des squelettes)
  • possibilité de surcharger la fonction spip_log()

— plus geek :

  • le compilateur offre une meilleure séparation entre le phraseur et l’arbre d’abstraction, permettant de créer de nouvelles syntaxes (pour les courageux)
  • réapparition d’un décompilateur complet et paramétrable offrant la possibilité de créer et d’expérimenter de nouvelles syntaxes

Incompatibilités connues

Comme toute nouvelle version majeure, cette 2.1 s’accompagne de quelques
incompatibilités heureusement aisément corrigeables :

  • Dans les boucles, le nom des tables SQL extérieures à SPIP doit être passé dans sa graphie réelle et non plus en majuscules :
    <BOUCLE_a(MaTable)... en lieu et place de <BOUCLE_a(MATABLE)...
    <BOUCLE_a(mes_infos)... en lieu et place de <BOUCLE_a(MES_INFOS)...
  • Le filtre |reduire_image disparaît définitivement (il était déjà obsolète, remplacé par |image_reduire)
  • Ajouter include_spip("inc/filtres_images"); dans les scripts php faisant appel à des fonctions utilisant les filtres graphiques
  • S’inspirer des nouveaux fichiers de ecrire/url/ pour écrire des scripts de personnalisation d’URL
  • Le pipeline creer_chaine_url disparait, remplacé par des pipelines spécifiques : propres_creer_chaine_url, arbo_creer_chaine_url, ...
  • Toute accolade ouvrante collée à une balise est désormais considérée comme fournissant des arguments à cette balise
    exemple : dans une feuille de style : .rub_#ID_RUBRIQUE{font-size:1.2em;} ne fonctionnera pas
    il faut soit séparer l’accolade : .rub_#ID_RUBRIQUE {font-size:1.2em;}
    soit utiliser la notation complète pour la balise : .rub_[(#ID_RUBRIQUE)]{font-size:1.2em;}
  • Les appels jQuery du type $("input[@name=prenom]"), déjà obsolètes avec jQuery 1.3, ne fonctionnent plus avec la version 1.4.2 de jQuery, utilisée par SPIP 2.1 ; il faut désormais écrire : $("input[name=prenom]")
  • L’écriture #SET{variable,} n’est plus acceptée (définir une variable comme vide) et doit être remplacée par #SET{variable, ''}
  • Pour les plugins, la déclaration vide <fonctions></fonctions> dans le fichier plugin.xml n’est plus acceptée
  • Pour utiliser une fonction spécifique d’un plugin seulement si ce plugin est activé (et sinon ne rien faire) il faut désormais écrire : [(#BALISE|appliquer_filtre{fonction_specifique})] en lieu et place de [(#BALISE|fonction_specifique)] qui génèrera une erreur.
  • Pour les balises #LOGO_xxx [1], les faux filtres |fichier et |lien sont remplacés respectivement par l’écriture #LOGO_xxx** et #LOGO_xxx*.
    Les faux filtres de positionnement (|top, |left, |right, |center et |bottom) et les balises |#URL_yyy en position de filtre sont à présent à écrire comme argument de la balise.
    L’écriture [(#LOGO_xxx|left)] est donc remplacée par #LOGO_xxx{left} et l’écriture [(#LOGO_xxx|#URL_yyy)] est remplacée par #LOGO_xxx{#URL_yyy}.
  • Il est fortement recommandé d’utiliser #INSERT_HEAD pour que les extensions puissent fournir leur feuille de style et code javascript spécifique.

Auteur L’équipe de SPIP Publié le : Mis à jour : 27/07/22

Traductions : عربي, català, Deutsch, English, Español, français, Nederlands