SPIP 3.0.6 et SPIP 2.1.20

habemus spipum : SPIP 3.0.6 et SPIP 2.1.20 !

Bonjour, la fumée blanche est enfin apparue, nous l’attendions depuis septembre dernier.

Deux nouvelles versions de SPIP sont donc disponibles pour les branches 3.0 et 2.1,
apportant diverses corrections de bug. Nous vous invitons à mettre à jour vos SPIP.

Liste des changements en 3.0.6 :
==========================
(une longue liste en français compilée par marcimat \o/ )

Interface :


- rétablir les puces sur les forums de l’espace de rédaction (r19923, #2864)
- corrections des ancres sur redirections Ajax des formulaires CVT sous webkit (r19929)
- rétablir l’affichage des documents sur l’édition ajax des objets (r19938)
- permettre d’avoir les champs supplémentaires sur la page ?exec=infos_perso comme sur la page ?exec=auteur (r19953)
- quand le logo n’est pas éditable, et qu’il n’y a ni logo normal ni logo survol déjà présent, il est inutile d’afficher le formulaire (r20018)
- dans la liste des enfants de rubrique, utiliser les filtres automatiques réellement définis pour les titres (r20032)
- classe CSS manquante sur la 404 privée (r20061)
- pétouille CSS quand un picker est dans un fieldset (r20076)
- faire apparaitre le bouton de changement de statut même si il etait du depart en display:none et pas seulement en visibility:hidden (r20158)
- vérifier qu’on est admin pour créer des rubriques à la racine (r20172, #2886)
- afficher les boutons de création d’auteur pour les admins restreints là où ils manquaient (r20220, #2939)
- utiliser apercite.fr pour remplacer thumbshots.com qui a sombré... (r20242)
- mettre à jour l’url sous « Voir le site public » quand on change l’url (r20245)

Puces statut :
- ajouter un title sur les puces de statut (r20059)
- si un objet n’est pas éditable, ne pas lui appliquer de changement rapide de statut (r20062)
- permettre a |puce_statut de supporter aussi les objets qui ne sont pas rangés dans les rubriques (puce de changement rapide) (r19987)

Sélecteur générique & rubrique :
- réparer l’ajout rapide du navigateur de rubrique (r19914)
- amélioration du sélecteur générique (r20034, r20038, r20039, r20041, r20043, 20120, r20123, r20124, r20179, r20190, r20192, r20231)
- ne pas enregistrer l’historique HTML5 sur le sélecteur ajax (r20034)
- rendre générique le mini formulaire d’ajout rapide (r20040)

Dateur :
- coquille dans un texte du dateur (r19958)
- relancer l’application du dateur sur les champs date après retour AJAX (r20046)
- attendre que les js du dateur soient chargées pour les lancer ! (r20050)
- le script de dateur était compacté en HTML au lieu de JS (r20050, #2921)
- image manquante (r20159)

Prévisu :
- envoyer systématiquement les boutons d’admin en prévisu (r20106)
- la prise en compte de la previsu ne se fait plus dans le code généré (accélère la prévisu) (r20107)
- l’ajout de la banniere previsu se fait dans le pipeline affichage_final, plus propre (r20108)

Traductions :
- les liens de traductions doivent pouvoir être définis et enlevés même lorsque le menu de langue n’est pas activé (r20152, #2861)
- quand on écrit une traduction, les auteurs de l’article d’origine ne sont pas associés à la traduction (mais seulement le traducteur) (r20198, #2847)

Traitements d’image :


- 2 pipelines supplémentaires : image_ecrire_tag_preparer et image_ecrire_tag_finir (r19917, r19918)
- éviter des timestamp compliqués dans l’espace privé (r19948)
- générer un log de debug au traitement d’une image, pour, lorsqu’une image trop grosse fait planter le site, pouvoir la retrouver plus facilement (r19950)
- vérifier que l’image temporaire existe bien (créée par GD) avant de faire un getimagesize (r20133)

Récupération de données distantes :


- avoir les réponses de requêtes HEAD vraiment identiques à GET (r19959)
- ne pas copier directement le fichier distant à sa destination, sinon un autre processus concurrent peut croire qu’il est présent et le traiter (r20113)
- ne pas confondre des documents distants avec des documents locaux protégés (r20146, r20169)

Code PHP :


- quelques notices PHP en moins (r19907)
- quelques documentations de fonctions au format PHPDoc en plus (r19916, r19928,r20004,r20034,r20037)
- définir dans la librairie Pclzip comme dossier temporaire le tmp/ de SPIP dont on sait qu’il est toujours accessible en écriture. (r19990)
- inclusion parfois manquante dans le nettoyage des mails (r20014)
- un statut ’0’ ne pouvait plus être modifié (r20020, r20021)
- objet_inserer() accèpte un argument $set (r20021)
- Inclusion manquante d’autoriser (r20072, r20073)
- inclusions inutiles (r20101)
- éviter des sql_countsel multiples pour le bouton de création de chaque objet enfant (r20100)
- permettre à un plugin de définir antérieurement la constante _LOG_FILTRE_GRAVITE. (r20212, r20219, #2927).

API d’objets et de liens :


- objet_inserer() accèpte un argument $set (r20021)
- objet_dupliquer_liens prend 2 arguments optionnels supplementaires qui permet de lister les types des objets lies a prendre en compte ou a exclure (r20197)
- cohérence : sur les objets génériques on prend _request(id_auteur) si il est posté pour l’associer à l’objet lors de la creation. Faisons pareil sur les articles (r20241, r20271)

Portages SQL :


- pas de longueur sur les index en SQLite (r20023)
- meilleur gestion des clauses DEFAULT en SQLite (r20270)

URLs :


- généricité du code dans balise/url_ (r19933)
- coquille sur #URL_TRUC* qui renvoyait vide (r19934)
- comme les autres #URL_XXX* #URL_ARTICLE* renvoie une URL sans & (r19935)
- corrections sur generer_info_entite (r20031)
- décodage des urls : quand on appelle la fonction en dehor de assembler, il faut prendre en compte l’url fournie telle quelle (r20166)

Dates :


- pouvoir utiliser des déclarations de champs de date qui ne sont pas habituels pour les critères de dates (jour_relatif, age_relatif etc) en utilisant $GLOBALS[’table_date’][$table[’id_table’]] (r19966)
- le 4eme argument $options du #FORMULAIRE_DATER peut etre utilisé pour forcer la prise en compte ou non d’une date_redac (r20030)

Compression :


- correction d’absence de compression CSS lorsque #INSERT_HEAD_CSS n’est pas présent dans un squelette (r20004, r20007, r20069)

RSS :


- réparer le flux RSS des signatures (r20013)
- permettre d’attraper la taille d’un `<media:content` dans un flux rss (r20225, #2941)

Gestion des plugins :


- analyse de paquet.xml : éviter de coller des mots ensemble (r19996)
- meilleure gestion de _DIR_PLUGINS_SUPPL (r20029)

Sessions :


- ne pas confondre un fichier temporaire avec un fichier de session (r20033, #2914)

Compilateur :


- rétablir la prise en compte par le phraseur n-#ENVnb,x (r20049)
- corriger certains critères de type  !id_mot=... (r20066, #2729, #2862)
- amélioration du critère par x.y qui ne se débrouillait pas de lui-même pour ajouter la jointure, si elle n’était pas déjà là au moment du calcul du critère. (r20114)
- permettre à la balise #LESAUTEURS d’être multi objet (r20116, r20187, r20188)
- autoriser des déclarations de boucles avec des noms de serveur comme pour les critères, tel que boucle_X_DOCUMENTS_dist() où X est un nom de connecteur (r20118)
- corriger #PUBLIE en prévisu (r20121, r20122)
- la boucle Hiérarchie ne doit pas empêcher de traiter les critères autres que ce qui la concerne directement (id_x et id_rubrique). (r20269, #2916, #2952)

Taches Cron :


- éviter trop de crons concurrents sur les serveurs à forts traffic (r20125, r20126, r20127, r20134)
- correction de plusieurs bugs sur les taches cron qui doivent se relancer car non finies (r20135)
- ne pas relancer un cron automatiquement immédiatement sans tenir compte du retour car cela provoque un appel continu toutes les secondes du genie optimiser qui fait plein de choses en BDD (load issue) (r20160)
- genie/mail utilise notifications_envoyer_mails() plutot que directement envoyer_mail() (r20230)

Écran de sécurité :


- 80legs est un bot (r20240)
- sys_getloadavg est peut être inhibée (r19945, #2871)

Autres :


- éviter de tuer charger_fonction() dans certains cas alors qu’on ne le demandait pas (r19925)
- ne pas manger les classes CSS du formulaire instituer objet (r19936)
- prise en compte d’une recherche accentuée si le site n’est pas en UTF-8 (r19946, r19947, #2801)
- le modèle pagination_precedent_suivant accèpte 2 arguments url_precedent et url_suivant permettant de l’utiliser en dehors d’une balise pagination (r19956)
- lors d’une institution (changement de statut ou déplacement), renseigner l’ancien parent dans les pipelines (r19977)
- utiliser chercher_filtre pour charger la fonction bouton_action (r19979)
- lors d’une réparation d’une table, que le sql ait ou non une fonction repair, on appelle en complement maj_tables() qui ajoute les champs éventuellement manquants (r19983)
- déclaration de pipeline manquante (r20067)
- gestion de la page d’erreur 404 extensible par pipeline page_indisponible (oubli de report) (r20070)
- securisation des urls redirections en url absolues : accepter non seulement la meta adresse_site, mais aussi l’url de base du hit (r20075)
- les mails HTML n’étaient pas detectés et affectés du bon Content-Type lorsque le sujet était fourni (r20223)
- ne pas proposer la base courante dans la liste des bases externes ; faire retourner tous les arguments de l’appel de la fonction analyse_fichier_connection (inclu, donc, le prefixe de table). (r20249)

Brèves
=====
- autorisations manquantes : il faut qu’une rubrique existe pour pouvoir les créer (r69229)
- éviter des warning (r70375)

Compresseur
==========
- correction d’une suppression à tort du retour ligne qui suit les commentaires // (r67734)
- tolérer que certains commentaires HTML ne soient pas supprimés, s’ils commencent par - prendre en charge les directives @import lors de la compression CSS (r69190, r69331, r69332, r69739)
- PHPDoc (r69190)

Filtres Images
===========
- correction d’une erreur sur la saturation = 0 (r66992)
- prise en charge des apple-touch-icon.png dans toutes leurs variantes, calculees a partir du logo du site. (r70268, r70269)

Forums
======
- correction sur l’url de notification (r65951)
- permettre l’extension de la table (r66054, r66056)
- éviter un bug lors de la soumission ajax du formulaire (jQuery pas defini dans l’iframe du post) (r66091)
- réparer l’alerte qui se declenchait a tort sous safari après post du message, et qui ne se déclenchait pas du tout sous Chrome (r66093)
- réparer generer_url_forum_dist() qui ne renvoyait rien (r67198)
- cliquer l’adresse mail dans l’en-tête d’un message de forum lance le courrielleur. (r70293, #2917)
- améliorer l’information d’auteur d’un message de forum (r70298, r70413)
- contrôle des forums privés : même type de cartouche pour les nouveaux objets éditoriaux que celui des objets historiques (r70416, r70466, r70469)
- espaces insécables sur chaîne de langue (r70587)

Mediabox
=======
- sprite sur le thème fancybox (r69774)

Médias
======
- pouvoir ajouter une liste de documents de la médiathèque par désignation d’un intervalle (r66239)
- post publication des articles : les documents ne prenaient pas le bon statut&date associes (r66464, #2849)
- correction d’une inclusion (r66948)
- correction de l’index id_objet qui était sur la colonne id_version, ajout deux index sur id_version et objet (r66950)
- ajouts de modes de fusions pour |image_masque : ecran, superposer, lumiere_dure, teinte, saturation, valeur (r67225)
- permettre à un squelette d’ignorer le mode d’une image sans forker les modèles, en passant mode_force=image ou mode_force=document (r67632)
- permettre les raccourcis |left |center |right même si le document est déjà vu (r67801)
- permettre même sur les documents dont la taille est 0 (r67801)
- lorsqu’un zip ne contient aucun fichier uploadable (type acceptable) alors il faut simplement le charger en zip joint plutot qu’annoncer une erreur erronée (r68096)
- après déplacement du fichier dans IMG/, on regarde si on peut récupérer une taille du fichier, si on ne peut pas, c’est qu’il fait 0 octets et donc corrompu (ou problématique et inutile) (r68123)
- prendre en compte les tailles maximales d’upload définies (r68412, r68452, #2920)
- pouvoir utiliser les modèles de documents, insertion, etc, avec des documents dont le mode n’est pas connu (r69196)
- déclarer le pipeline medias_documents_visibles (r69827)
- clauses DEFAULT souvent manquantes sur les champs extension, credits et statut de la base, car elles n’étaient pas initialement renseignées. On les remet d’applomb (r69871)
- prise en charge des documents au format MBTiles (r69920)

Mots
====
- coquilles dans les declaration de chaine de langue (r66776)
- ajout d’un index sur id_groupe (r67761)
- les groupes de mots n’ont pas à être tous affichés dans le formulaire pour associer des mots : c’est en fonction de leur configuration et du statut de l’auteur (r70329, #2926)
- appliquer une marge à l’icône « Modifier ce groupe de mots » uniquement sur exec=mots (r70540)

Organiseur
=========
- afficher l’agenda interne dans l’espace public affiche bien ses propres rendez-vous si on est connecté(r68383)
- séparer l’algorithme de conversion des messages vers le format fullcalendar dans des fonctions spécifiques pour permettre des réutilisations par des plugins (r68389)

Révisions
========
- débug en moins (r65911, #2857)
- ajouter un DEFAULT sur ’permanent’ et ’champs’ pour SQLite (r67235)

Sites
====
- autorisations manquantes : il faut qu’une rubrique existe pour pouvoir les creer (r69229, r69232)
- prendre en compte les documents attachés qu’ils soient via enclosure, media:content ou les deux (r70317, #2941)

Squelettes dist
===========
- coquilles sur le formulaire de recherche (r66277)
- retours de message du formulaire d’inscription : quand c’est une erreur afficher un message d’erreur. Quand c’est un succes, fournir en retour l’id_auteur inscrit pour les pipelines/plugins (r68472)
- éviter un warning php sur le formulaire pour écrire à un auteur (r68491)
- HTML du formulaire de recherche : le input.texte et le input.sumit n’ont pas d’espace entre eux comme sur la 2.1 (r68636)
- ne pas appeler la page 404 depuis les squelettes car cela empêche un plugin d’utiliser une 401 en cas de contenu interdit par exemple. Corrolairement on deplace le calcul des messages d’erreur par defaut dans la page 404 (r68800)
- passer dorénavant objet/id_objet au modèle lesauteurs (r69240)
- les robots ne doivent pas indéxer plugins-dist ! (r69404)
- utiliser le modeles/mail_oubli pour composer l’email de rappel de mot de passe, plutot que le composer en dur dans le code PHP (r70608)

Statistiques
=========
- pouvoir annuler le filtre id_article sur la page des stats (r65914, #2856)
- la colonne de droite des stats ne doit pas exclure les éléments trouvés précédemment (r66318)

SVP
===
- correction du non affichage du slogan après l’activation d’un plugin : Inclusion manquante (r67424, #2895)
- correction de la détermination des branches SPIP lorsque la borne max contient des étoiles. (r67489)
- « Sélectionner les mises à jour » passe le bouton d’action sur mise à jour automatiquement (évite que le bouton désactive les plugins par défaut) (r68017)
- coquille sur _DIR_PLUGINS_SUPPL (r68051)
- _DIR_PLUGINS_SUPPL est géré comme un répertoire normal de plugins (r68052)
- ajout d’une autorisation « ajouter plugins »(permet d’activer ou non le téléchargement sur une mutualisation) (r68054)
- donner un nom à un index pour PostGreSQL (r69430)
- message d’erreur correct lorsque c’est le XML décrivant les plugins qu’on n’arrive pas à télécharger, et non sa syntaxe qui est erronnée (r70068)

Textwheel
========
- ne pas confondre un simple "<" avec un raccourci ressource en embarquant par erreur la balise html qui suit (r65851, r65852, #2854)
- éviter un segmentation fault dans le traitement des listes (r68671, r68672, #2531)
- versionner les wheels cachées pour éviter un bug en cas de modification sensible lors d’un upgrade (r69009)
- correction d’une substitution sur &deg (r70155)
- tableau : mieux lire les nombres (r70244, r70279)

URL étendues
===========
- ne jamais appeler en direct generer_url_document_dist mais passer par un charger_fonction approprié (r67345)
- correction en url arbo où on pouvait se retrouver a renvoyer la sous rubrique au lieu de la racine en decodant le premier troncon de l’URL (r70024)

Liste des changements en 2.1.20 :
============================
(une liste en français compilée par esj \o/ )

Une quarantaine de commit sont passés sur la branche 2.1
depuis la sortie de 2.1.19 en Septembre. Ils corrigent des bugs
mineurs. Les principaux changements concernent :
*- la récupération des fichiers distants ou protégés
*- les arguments des chaînes de langues dans les squelettes
*- la présentation des résultats de recherche
*- le repérage des colonnes numériques dans le raccourci des tableaux
*- plusieurs cas d’invalidité XHTML (voire XML), et WCAG
*- les bases externes pas toujours prises en compte
*- l’import partiel avec fusion qui ne traitait pas certains cas et n’était pas extensible
*- le validateur en boucle qui ne savait pas traiter les squelettes du répertoire prive.

Télécharger la version SPIP 2.1.20 : http://files.spip.org/spip/archives/

Mise à jour
========
N’hésitez pas à utiliser les différents moyens mis à disposition par la communauté pour obtenir de l’aide lors de cette mise à jour :

- Liste spip-user : http://listes.rezo.net/mailman/listinfo/spip
- Forum : http://forum.spip.net
- IRC : http://irc.spip.net

Nous rappelons à toutes et tous que le meilleur moyen pour signaler des failles, ou des suspicions de failles est d’envoyer un email à « spip-team@rezo.net ».

Comment mettre à jour vers SPIP 3.0.6 ?

1. par spip_loader.php : si vous avez déjà installé spip_loader, rendez-vous à l’adresse http://VOTRE_SITE/spip_loader.php pour installer la dernière version de SPIP.
Attention cependant : lisez bien les instructions ici : http://www.spip.net/fr_download#spip_loader pour ne pas être surpris par un passage non voulu de SPIP2 à SPIP3.

2. par copie des fichiers : SPIP 3.0.6 est disponible à l’adresse http://files.spip.org/spip/stable/spip-3.0.zip

3. par SVN : si vous êtes dans la branche 3 faites simplement un « svn up » svn ://trac.rezo.net/spip/branches/spip-3.0
la version 3.0.6 est aussi disponible sous la branche : svn ://trac.rezo.net/spip/branches/spip-3-stable et sous le tag svn ://trac.rezo.net/spip/tags/spip-3.0.6

Pour, la version SPIP 2.1.20, vous pouvez la trouver dans les archives : http://files.spip.org/spip/archives/

Comment être tenu au courant de ces annonces ?
Le plus simplement du monde en s’inscrivant sur la mailing liste http://listes.rezo.net/mailman/listinfo/spip-ann .

Bien sûr les réseaux sociaux ne sont pas en reste :
- Twitter : http://twitter.com/spip
- Facebook : http://www.facebook.com/spip.net
- Seenthis : http://seenthis.net/people/spip

Envie de recevoir nos dernières nouvelles? Inscrivez-vous à notre newsletter