Plusieurs nouveautés concernent l’interface de programmation (API) de SPIP, c’est-à-dire la liste des fonctions mises à la disposition des programmeurs (notamment pour les plugins).
Cette nouvelle version s’apprécie donc aussi pour les nouveaux plugins qu’elle permet d’utiliser (voir, entre autres, le plugin « crayons », qui permet d’éditer les articles directement sur le site public ; le plugin de validation XHTML automatique, etc.)
Pour la migration d’un site existant vers cette nouvelle version stable, il est important de noter les points suivants :
- réorganisation des répertoires, et notamment déplacement de CACHE et de ecrire/data vers tmp/ ; des vignettes d’image vers local/ ; et des fichiers de configuration (mes_options.php, connect.php) vers config/ ;
- le répertoire ecrire/ ne contient donc plus que des scripts, et peut être partagé entre plusieurs sites (voir l’article sur la mutualisation) ;
- si vous utilisez les filtres d’image (et notamment image_reduire) un bug a obligé à rompre la compatibilité dans les noms des vignettes. SPIP devra donc recréer toutes les vignettes. Vous pouvez supprimer les vignettes présentes dans le répertoire IMG/
Voici une liste plus détaillée des nouveautés :
Espace privé
- conformité XHTML 1.0 Transitional de l’espace privé (et même strict, hormis quelques attributs Transitional sans équivalents exacts en Strict) ;
- de nouvelles icônes de documents ;
- statistiques téléchargeables au format CSV
- des statistiques plus correctes (un bug tendait à surestimer largement le nombre total de visites sur le site)
- génération automatique de vignettes (sous GD2) :
- détection de la taille maximale d’image manipulable, pour anticiper une erreur lorsque les images téléchargées sont trop grandes. Les grosses images sont conservées telles quelles ;
- cette détection est réalisée par un calcul unique (un peu gourmand) dans la page Configuration>Fonctions Avancées. Visuellement, une jauge affiche en vert le nombre maximal de pixels utilisés (en millions de pixels)
- téléchargement de documents/images :
- possible de télécharger un document dès la création de l’article ;
- le téléchargement ne fait pas perdre les modifications en cours dans l’édition du texte
- sauvegarde :
- sauvegarde facilitée : authentification supprimée, possibilité de choisir le nom de la sauvegarde afin d’en conserver plusieurs
- sauvegarde de la configuration du site et des plugins (à l’exception de ceux qui sont liés à la configuration du serveur)
- restauration fiable des anciennes versions ou créées par phpmyadmin (au format XML)
- restauration avec fusion au lieu d’écrasement, avec importation des logos ;
- restauration accélérée et corrigée sur son traitement des entités HTML.
Espace public
- Généralités
- validateur XHTML interne embarqué permettant de valider les pages produites par les squelettes (bouton Analyse XML)
- indenteur XHTML activable pour produire du code indenté
- la colonne d’ajout de documents est utilisable dans les squelettes
[(#ID_ARTICLE|afficher_documents_colonne)]
-
{
critères}
- #BALISES
- #ARRAY
{
cle1,valeur1,cle2,valeur2...}
permet de créer une variable tableau (utile pour affecter un tableau dans un #SET et/ou pour utilisation dans un critère IN dynamique) - #EDIT
{
xxx}
dans laclass
d’un élément entourant la balise #XXX permet de la rendre éditable à l’aide du plugin crayons (voir la documentation sur spip-contrib) - #TOTAL_UNIQUE permet de ressortir le nombre d’éléments différents
obtenus avec le filtre
|unique
- #PIPELINE
{
nom_du_pipeline}
permet, dans un squelette, d’afficher le flux d’un pipeline donné, issu d’un ou plusieurs plugins. - #URL_ACTION_AUTEUR
{
action}
affiche l’adresse de l’action « action » avec le nécessaire pour vérifier les autorisations du visiteur connecté. Cette balise accepte deux paramètres supplémentaires et facultatifs : une liste d’arguments et une adresse de redirection éventuelle.
- #ARRAY
- |filtres
- |concat
{
valeur1,valeur2,..}
permet de concaténer plusieurs chaînes. - |compacte permettent de réduire la taille d’une css ou d’un javascript en supprimant tous les commentaires. Le filtre prend en entrée le nom du fichier, et produit un nouveau fichier dont il renvoie le nom
<link rel="stylesheet" href="[(#CHEMIN{spip_style.css}|compacte)]" type="text/css" media="all" />
Il accepte un paramètre optionnel, le type du fichier lorsqu’il ne peut être déduit de l’extension comme...|compacte{js}
- |date_822 : pour certains feeds RSS 2.0 (notamment photocast), il est nécessaire d’insérer la date au format RFC 822 (
<pubDate>
) - |paragrapher pour toujours mettre des paragraphes HTML autour du texte (et pas seulement si ça contient au moins deux paragraphes).
- |url_absolue_css passe toutes les URL relatives d’une css en URL absolue (a utiliser avant compacte par exemple)
- |concat
-
- améliorations : |direction_css conserve les images de background et se propage dans les
@import
- améliorations : |direction_css conserve les images de background et se propage dans les
- Remaniement et homogénéisation des filtres images
- Tous les filtres image_xx respectent les attributs présents en entrée.
Ils modifient éventuellement :
- l’attribut src (par définition)...
- les attributs style, width et height si la taille change
- l’attribut class pour mettre ou enlever l’attribut format_png selon que l’image de sortie est au format png ou non - Les filtres image suivants ont été ajoutés :
- |image_imagick{
fonction_php_imagick, variables,...}
permet d’appliquer n’importe quelle fonction de la librairie php_imagick : des filtres inédits jusqu’à présent dans SPIP ; il y en a de très impressionnants ; mais cela ne fonctionne que sur les images sans transparence alpha
- |image_recadre{
largeur,hauteur,position}
pour recadrer une image (le crop de Photoshop) avec les combinaisons de left/center/right et top/center/bottom pour la position (ex ’left center’)
- |image_renforcement fait exactement le contraire de image_flou. A utiliser notamment sur les vignettes de prévisualisation, qui deviennent carrément plus belles.
- |image_select{
largeur_min,hauteur_min,largeur_max,hauteur_max}
permet de cibler les images qui subiront les filtres images à suivre. Utile pour faire par exemple[(#TEXTE|image_select{50,50}|image_masque{...})]
dans deformer les icones de documents ou puces ...
- Tous les filtres image_xx respectent les attributs présents en entrée.
Ils modifient éventuellement :
Réorganisation des répertoires
-
- suppression de ecrire/data, plus de droit d’écriture dans ecrire nécessaire (connect.php passe dans config/ )
- tmp/ comporte tout ce qui est temporaire et non accessible par le navigateur (inclus cache/)
- local/ comporte tout ce qui est temporaire et accessible par le navigateur (inclus les vignettes d’image)
- IMG/ comporte ce qui est permanent et accessible par le navigateur
- config/ comporte ce qui est permanent et non accessible par le navigateur
API (interface de programmation, destinée aux développeurs)
- jQuery 1.1 inclus dans SPIP, chargé dans l’espace privé par defaut, et dans l’espace public si le squelette dispose de #INSERT_HEAD ; cette librairie javascript est documentée en français sur le site www.jquery.info
- Poursuite de la réorganisation du code pour séparer l’affichage des opérations sur la base de données, et pour faciliter la surcharge
- autoriser(’voir’...) partout dans l’espace privé pour permettre le filtrage d’accès et l’ouverture de nouveaux droits de modification
- la fonction recuperer_page permet des appels SOAP en fournissant un $data du type string (headers+deux retour lignes+corps xml)
- API d’installation/désinstallation des plugins : les plugins qui gerent leur installation sont repérés visuellement par une icone
- les modèles peuvent utiliser du javascript qui restera actif, y compris dans l’espace privé
- le javascript dans les articles est désactivé dans l’espace privé, mais actif dans l’espace public (il est possible de modifier cette règle). Cela permet de programmer des comportements javascript ou jQuery directement dans les articles.
- annonce dans les entêtes HTTP des pages de la liste des plugins installés et de leur version (desactivable par
$GLOBALS['spip_header_silencieux'] = true;
)
Bugfix :
- MySQL 5 : Certaines configurations serveurs MySQL 5 posant problème, la constante _MYSQL_SQL_MODE_TEXT_NOT_NULL
permet de contourner le bug, en attendant une refonte de la définition des tables ;
- le nom des vignettes issues de image_reduire pouvaient être identiques pour deux images sources différentes
Comme d’habitude, ces améliorations seront rapidement intégrées au reste de la documentation officielle, avec des exemples détaillés. En attendant n’hésitez pas à solliciter la liste des utilisateurs !
Version de correction 1.9.2a
SPIP 1.9.2a est parue le 14 mars 2007
Cette version [8878] n’apporte pas de nouveautés, elle fixe essentiellement des bugs :
- éviter un crash de Safari et divers bugs sous IE et FF (dans des sites dont l’url contient un ~
) lors de l’upload de documents
- compatibilité avec les nouvelles versions de php (4.4.6) et en particulier PCRE
- éviter une erreur chez free avec le filemtime sur les fichiers inexistants
- raccourci hors du bloc des raccourcis (exec=articles_page)
- rectification de l’interface permettant de ’liberer les articles’
- Les visiteurs et les auteurs à la poubelle n’ont pas accès la messagerie interne.
- ne pas construire de vignettes vide si on n’a pas pu récupérer le fichier distant
- imprécisions sur les revisions anonymes
- colonne document dans les breves
- meilleure heuristique pour chercher la version svn
- cache pour exécution des squelettes dans l’espace privé
- précisions filtres robots d’indexation
- divers nettoyages de code et réglages css
Version de correction 1.9.2b
SPIP 1.9.2b est parue le 23 mai 2007.
Cette version [9381] n’apporte pas de nouveautés, elle répare essentiellement des bugs :
- lien [bla{blabla}->url]
était cassé, sauf dans le cas ou on avait un hreflang
- plusieurs corrections dans calendrier
- toujours un effort pour rendre SPIP xhtml compliant
- ¡
qui apparaissait lors d’une restauration en espagnol
- renforcement vis à vis des PREG défaillants de PHP-4.4.6
- langue d’accueil fixée par le visiteur lors de l’installation
- règle les float sans largeur fixée après passage dans win_png.htc sur IE
- syntaxe incorrecte dans l’installation LDAP
- rafraichissement des documents après téléchargement dans IE et Opera
- fonction import_identifie_id_type()
en double
- sécuriser l’argument de parametre_url
- <INCLURE(xxxxx.php3)>
etait cassée
- mauvais include pour des erreurs de squelettes
- crash dans autoriser si spip_query()
n’a pas encore été chargée
- upgrade partiellement défaillant sur des vieilles versions
- images impossibles à associer à l’article si les documents sont interdits
- mauvais enregistrement des révisions partielles (avec les crayons par exemple)
- le filtre couper()
crashait sur une note de bas de page de plusieurs lignes vers le début du texte
- fixe SQL auteur dans certains autoriser()
- (et, dernière minute) une correction d’un bug lors de la restauration des gros dump (reprise apres timeout)
Version de correction 1.9.2c
SPIP 1.9.2c est parue le 19 Septembre 2007.
Cette version apporte une correction critique d’une faille de sécurité. Elle apporte aussi un certain nombre de corrections et d’améliorations :
- Corrections :
- Restauration : reprise sur timeout et déconnexion,
- Messagerie interne : envoi du mail de suivi des discussions,
- Date de rédaction antérieure : contournement d’un bug IE empêchant la modification,
- menu des rubriques (gadget tout le site) : arborescence incomplète dans certains cas,
- fiche auteur : bug en modification de l’url du site,
- filtres images : bug sur aplatissement en gif,
- barre typographique : bug d’affichage,
-
#URL_LOGOUT
: suppression des&
amp;
et redirection vers la page en cours (self) par défaut, -
#LOGIN_PUBLIC
: accepte les visiteurs.
- Améliorations :
- support JQuery 1.1.4 (la version intégrée restant la 1.1.1) et quelques correctifs,
- Fonction
image_aplatir
: prend un 3eme paramètre "qualité" (85 par défaut pour les jpg, nombre de couleurs de la palette pour gif et png), - Mot de passe : Peut contenir des
'
et des\
, -
articles_tous
et brouteur : optimisation des requêtes (surcharge MySQL pour les gros sites), - Ajout des extensions csv, mkv, mka, kml et kmz.
Version de correction 1.9.2d
SPIP 1.9.2d est parue le 27 Janvier 2008.
Cette mise à jour concerne exclusivement des corrections de bugs. Le passage à cette version est conseillé, et ne doit entrainer aucun impact fonctionnel pour les visiteurs de votre site si vous utilisez déjà une version 1.9.2 (a,b ou c)
Pour les rédacteurs et administrateurs :
- correction d’une incohérence dans la gestion de date des documents (date/heure a la création puis date seulement)
- correction d’un bug sur le menu de rubriques qui en masquait certaines (ticket #1113)
- éviter une erreur javascript au début du chargement de la page lorsque l’on bouge la souris trop vite
- la configuration graphique et l’adresse du site ne sont pas écrasées lors de la restauration d’une sauvegarde, car liées au serveur
- affichage correct des captures d’écran successives dans les statistiques
- ajout de la traduction en indonésien
- correction d’un bug sur les droits de modification des sites syndiqués par les administrateurs restreints
- correction d’une série de bugs relatifs à la gestion des droits sur les logos
- correction d’un bug sur la requête sql du navigateur de rubriques qui le rendait inutilisable sur les gros sites (et tri des rubriques par num titre, titre)
- correction d’un bug qui autorisait un administrateur restreint à déplacer un article publié dans une rubrique dont il n’est pas administrateur.
D’un point de vue plus technique, pour les développeurs de plugins :
- remplacer la constante _INC_PUBLIC par la globale _INC_PUBLIC et l’incrémenter lors des inclusions pour que le plugin balise session fonctionne correctement (notamment sa gestion de cache reportée de la version en cours de développement)
- amélioration de la purge du cache dans le CRON (la purge pouvait ne jamais réussir après le passage d’un robot, et saturer les ressources serveurs à essayer de calculer la taille du cache)
- url_de_base peut être appelée depuis mes_options
- Correction d’un include manquant qui pouvait faire échouer la fonction autoriser_voir_dist
- recuperer_page prend correctement en charge les urls du type https (si php a été compilé avec le support de ssl)
Version de Correction 1.9.2e
Cette version a été publiée le 13 septembre 2008 (révision [12624]).
Elle apporte quelques corrections de bugs mineurs et des adaptations techniques.
- Les expressions régulières sont désormais compatibles avec la version 5.2.6 de PHP (C’est LA correction principale)
- Correction de la mise en évidence des résultats de recherche sur deux mots ou plus
- Correction de l’indexation des forums
- Chaque message peut être indexé individuellement, plutôt que le fil complet
- Correction d’un bug de l’espace privé (cas de mots clés multiples séparés par des virgules)
Version de Correction 1.9.2f
Cette version a été publiée le 7 décembre 2008 (révision [13408]).
Elle apporte quelques corrections de bugs mineurs :
- Corrige le bug de fake HTTP_X_FORWARDED_HOST (#401)
- Correction d’orthographe pour l’ukrainien
- Protection des urls de redirection
- Optimisation des requêtes SQL, permet d’utiliser le cache des requetes de MySQL (idée de Thomas Radio France et Fabrizio Pix-L)
- Correction des conflits d’édition des SELECT MD5
- Amélioration du tri
{par multi titre}
Version de Correction 1.9.2g
Cette version a été publiée le 24 décembre 2008 (révision [13534]).
- Correction d’orthographe pour l’asturien
- Protection de l’argument fournit au calcul de branche (Julien Cayssol)
- Correction d’une perte de date de l’agenda dans les calculs
- Rejet des urls avec le pseudo protocole data : dans la fonction de redirection redirige_par_entete
Pour plus de détails : historique de la branche 1.9.2 sur trac