Changements entre 3.0.13 et 3.0.14

Fichiers du core

58 fichiers impactés :
-  ecrire/action/calculer_taille_cache.php
-  ecrire/action/iconifier.php
-  ecrire/action/inscrire_auteur.php
-  ecrire/balise/formulaire_.php
-  ecrire/balise/url_.php
-  ecrire/base/repair.php
-  ecrire/exec/plonger.php
-  ecrire/exec/rechercher.php
-  ecrire/inc/admin.php
-  ecrire/inc/config.php
-  ecrire/inc/documents.php
-  ecrire/inc/filtres_mini.php
-  ecrire/inc/filtres.php
-  ecrire/inc/informer.php
-  ecrire/inc/install.php
-  ecrire/inc/json.php
-  ecrire/inc/log.php
-  ecrire/inc/minipres.php
-  ecrire/inc/pipelines_ecrire.php
-  ecrire/inc/plugin.php
-  ecrire/inc/queue.php
-  ecrire/inc/rubriques.php
-  ecrire/inc/texte_mini.php
-  ecrire/inc/texte.php
-  ecrire/inc/utils.php
-  ecrire/index.php
-  ecrire/install/etape_2.php
-  ecrire/install/etape_3b.php
-  ecrire/install/etape_ldap1.php
-  ecrire/install/etape_ldap3.php
-  ecrire/install/etape_ldap4.php
-  ecrire/iterateur/data.php
-  ecrire/public/assembler.php
-  ecrire/public/balises.php
-  ecrire/public/debusquer.php
-  ecrire/public/tracer.php
-  ecrire/req/pg.php
-  ecrire/req/sqlite_fonctions.php
-  ecrire/xml/sax.php
-  prive/echafaudage/contenu/objet.html
-  prive/formulaires/editer_auteur.php
-  prive/formulaires/editer_liens.php
-  prive/formulaires/editer_logo.php
-  prive/formulaires/login.php
-  prive/formulaires/selecteur/picker-ajax_fonctions.php
-  prive/objets/liste/articles-trad.html
-  prive/objets/liste/auteurs.html
-  prive/objets/liste/visiteurs.html
-  prive/rss/a_suivre.html
-  prive/squelettes/contenu/article.html
-  prive/squelettes/contenu/auteur.html
-  prive/squelettes/contenu/rubrique.html
-  prive/squelettes/inclure/menu-navigation_fonctions.php
-  prive/squelettes/navigation/auteurs.html
-  squelettes-dist/auteur.html
-  squelettes-dist/formulaires/oubli.php
-  squelettes-dist/modeles/plan.html
-  squelettes-dist/paquet.xml

17 tickets fermés :
3140, 3132, 3117, 3116, 3113, 3112, 3100, 3099, 3093, 3090, 3088, 3081, 3066, 3042, 2978, 2846, 2790

révision 21136
prive/formulaires/login.php
ecrire/inc/plugin.php
ecrire/inc/filtres.php
ecrire/inc/filtres_mini.php

éviter des notice php.

révision 21130
ecrire/install/etape_3b.php

_LOGIN_TROP_COURT ; à l’install, on aligne le test sur la constante.

révision 21124
ecrire/inc/pipelines_ecrire.php

ne pas générer une erreur SQL si on passe un id_xx en tableau dans l’URL.

révisions 21122, 21123
prive/objets/liste/auteurs.html
prive/objets/liste/visiteurs.html

Quand le nom d’un auteur/visiteur est constitué d’un espace (ce que permet le formulaire de saisie), la liste n’affiche aucun moyen d’accèder à l’auteur puisque le lien sur l’email est un mailto. Dans ce cas on utilise le début de la bio en guise de nom ou sinon le Numéro de l’auteur en dernier recours.

révision 21121
prive/formulaires/editer_liens.php

On a beau être aussi générique que possible il reste des cas particuliers non prévus ici, comme le cas où la table liens contient un champ de plus en clé primaire qu’il faut gerer sur les liens. On rend donc possible la définition de 3 fonctions personalisées : editer_liens_ajouter_{$table_source}_{$objet}_{$objet_lien}, editer_liens_supprimer_{$table_source}_{$obje}_{$objet_lien} et editer_liens_oups_{$table_source}_{$objet}_{$objet_lien} qui prennent en charge les 3 actions ajouter/supprimer/oups pour ces cas particuliers.

révision 21115
ecrire/inc/texte_mini.php

Attention l’echappement de HTML en retour peut être imbriqué : un modele echappé dans un contenu échappé. On remplace le if par un while avec un compteur de securité limité à 5 niveaux de profondeur.

révisions 21114, 21113, 21112, 21111, 79965, 79964
ecrire/balise/formulaire_.php
ecrire/balise/url_.php
ecrire/base/repair.php
ecrire/exec/plonger.php
ecrire/exec/rechercher.php
ecrire/inc/admin.php
ecrire/inc/filtres_mini.php
ecrire/inc/filtres.php
ecrire/inc/informer.php
ecrire/inc/install.php
ecrire/inc/json.php
ecrire/inc/minipres.php
ecrire/inc/texte_mini.php
ecrire/inc/texte.php
ecrire/inc/utils.php
ecrire/install/etape_2.php
ecrire/install/etape_ldap3.php
ecrire/install/etape_ldap4.php
ecrire/public/assembler.php
ecrire/public/balises.php
ecrire/public/debusquer.php
ecrire/public/tracer.php
ecrire/xml/sax.php
squelettes-dist/formulaires/oubli.php
squelettes-dist/paquet.xml

Fix des fonctions htmlspecialchars et htmlentities en ISO sous PHP 5.4+ : on utilise un wrapper spip_htmlspecialchars et spip_htmlentities qui retablit l’ancien comportement. Plus rechercher/remplacer sur tous les usages.

révision 21102
prive/squelettes/inclure/menu-navigation_fonctions.php

un fichier fonctions avec inclusion manquante pour afficher le menu de navigation.

révision 21101
ecrire/inc/queue.php

Prendre en compte HTTPS pour le CRON. Si la page appelante est en HTTPS, utiliser un socket avec ssl. Sans ça, un site tout https (et refusant les connexions http) ne lance jamais les tâches.
Ferme le ticket #3140

révision 21092
ecrire/inc/documents.php

compatibilité pcre 8.34 (php 5.5). le tiret pour ne pas être considéré comme marque d’intervalle dans une classe de caractères doit être placé soit au début, soit à la fin de l’énumération.
Ferme le ticket #3132

révision 79771
squelettes-dist/auteur.html

Puisque l’on peut mettre des images dans la bio des auteurs, il faut donc prévoir le même traitement des images que pour les articles si ce n’est que c’est autour de #BIO que cela se passe.
Ferme le ticket #3081

révision 79341
squelettes-dist/modeles/plan.html

singulier ou pluriel sur le titres du plan.
Ferme le ticket #3088

révision 21080
ecrire/inc/admin.php

utiliser autoriser(chargerftp) pour les scripts d’admin de base pose problème, car c’est la même autorisation que celle utilisée pour permettre l’upload de document par tmp/upload, alors qu’on peut interdire cette dernière sans vouloir interdire les scripts d’admin de base. Il faudrait ici une autorisation spécifique donc (TODO branche dev), en attendant on laisse quand même passer les webmestres qui n’ont pas besoin d’accès FTP pour faire ces operations.

révisions 21099, 21062, 21054
prive/formulaires/editer_auteur.php
ecrire/lang/ecrire_fr.php

Ne pas autoriser d’avoir deux auteurs avec le même email , piloté par _INTERDIRE_AUTEUR_MEME_EMAIL.
Ferme le ticket #3113

révisions 21060, 21052
prive/rss/a_suivre.html

Déporter les rss de ’A suivre’ vers les plugins d’objets (Breves et Sites) - Les autres objets peuvent s’insérer avec un prive/rss/a_suivre-objets.html calqué sur celui des brèves.
Ferme le ticket #2978

révision 21048
prive/objets/liste/articles-trad.html

pas de lien sur l’article en cours d’affichage dans la liste des traductions.
Ferme le ticket #3090

révision 21040
prive/echafaudage/contenu/objet.html
prive/squelettes/contenu/article.html
prive/squelettes/contenu/rubrique.html
prive/squelettes/contenu/auteur.html

Le bloc affiche_gauche n’était pas rechargé en « grand écran » lorsqu’on clique le bouton ’retour’ ou ’enregistrer’ (en ajax) d’un objet éditorial en édition.

révision 21030
ecrire/req/pg.php

Dans le code PostGres, une utilisation de strpos sans vérifier que son 2e arg est non vide.
Ferme le ticket #3100

révision 21028
ecrire/install/etape_ldap1.php
ecrire/install/etape_ldap3.php
ecrire/install/etape_ldap4.php

Certaines des pages d’installation de la connexion Ldap avaient le focus sur le bouton de soumission et d’autes non. On unifie.

révision 21023
prive/squelettes/navigation/auteurs.html

afficher l’icône auteur pour le lien Afficher les auteurs depuis exec=visiteurs.

révision 21019
prive/formulaires/editer_logo.php
ecrire/inc/documents.php
ecrire/action/iconifier.php

Lorsqu’on upload un logo par le formulaire de l’interface privée et qu’une erreur se produit, la requete ajax part en vrille car l’erreur était affichée en minipres au lieu de revenir par le canal normal du CVT. On corrige en introduisant un $return optionnel dans action/iconifier et dans check_upload_error qui permet de faire remonter l’erreur par le CVT. le comportement par défaut des fonctions reste identique.

révisions 21017, 21033
ecrire/inc/filtres.php

modification de la fonction de filtrage du nom/signature. on introduit la constante _TAGS_NOM_AUTEUR (vide par défaut, définissable dans mes_options.php) qui liste les tags html acceptables en plus de <multi>.

révisions 21013, 21012
ecrire/inc/plugin.php

le header qui donne la liste des plugins est de plus en plus souvent incomplet car tronqué à 900 caractères. On en met une version complète dans local/config.txt (sauf si la globale spip_header_silencieux specifie qu’on en veut pas) .

révision 21010
ecrire/iterateur/data.php

rétablir le tri sur la clé .

révision 21009
ecrire/inc/utils.php

bugfix : Lorsque recuperer_fond est appelée avec tableau de fond en argument, on passait par erreur le tableau à chaque appel du pipeline recuperer_fond et non le seul fond concerné.

révision 21008
ecrire/inc/config.php

réparer le test expliquer_config : si $cfg est vide ne rien faire.

révision 21005
ecrire/inc/queue.php

Perf issue sur le lancement du CRON : 1) limiter le timeout de fsockopen à 1s au lieu de 30s : si on a pas pu initialiser la connexion http en 1s c’est qu’il y a un soucis ; 2) lorsque fsockopen échoue, rien ne sert de lancer cURL qui n’aura pas plus de chance ; cURL est utilisé en fallback uniquement si fsockopen n’est pas disponible (cas rare) ; 3) du coup si fsockopen échoue on passe au lancement old-style avec HTML background (mais ça nous a coûté 1s d’attente inutile. Possibilité d’inhiber le lancement du cron par fsockopen/cURL avec la constante ’_HTML_BG_CRON_FORCE’.
Ferme le ticket #2846

révision 21003
ecrire/req/sqlite_fonctions.php

Accélérer le critere age de 50% environ sous SQLite.

révisions 20992, 20990, 20998
ecrire/action/calculer_taille_cache.php

affichage correct de l’information pour le cache des images quand il est vide

révision 20986
prive/formulaires/selecteur/picker-ajax_fonctions.php

lors de l’appel ajax du picker, on entre directement par picker-ajax.html et il faut alors inclure les filtres pour ne pas provoquer une erreur de compilation.
Ferme le ticket #3099

révision 20982
ecrire/inc/filtres.php
ecrire/lang/spip_fr.php

Un filtre |saison_annee pour afficher des « Printemps 2014 » ou « Été 2015 », associé à une chaîne de langue pour gérer les cas spécifiques entre les langues.

révision 20980
ecrire/inc/rubriques.php

le second appel de la boucle HIERARCHIE ne renvoyait plus rien si pas de critere tout.

révision 20975
ecrire/index.php
ecrire/inc/log.php
ecrire/inc/config.php

2 petits mots en plus pour avoir un log plus explicite. (non, un auteur n’est pas qu’un numero) ; éviter une notice lors d’une action en cours interrompue qui doit reprendre, par exemple pour une restauration de dump qui demande de se reconnecter ; éviter une notice pour slogan_site sur la dist.

révision 20973
ecrire/inc/filtres_mini.php

ne pas essayer de transformer une DATA URI en url absolue dans suivre_lien.

révision 20971
ecrire/action/inscrire_auteur.php

Soucis dans la fonction auteur_attribuer_jeton.
Ferme le ticket #3093

Fichiers de plugins-dist

BREVES
révision 79347

pour le fil rss "A suivre" de l’accueil de SPIP.

COMPRESSEUR
révision 78509

filtre_embarque_fichier provoque un accès SQL pour le mime_type. Éviter cela si la globale tables_mime est peuplée, ce qui permet de s’en servir à chaque hit sans provoquer d’accès SQL ; fait un include_spip("base/typedoc") avant.

FORUM
révision 79966

Fix de la fonction htmlspecialchars en ISO sous PHP 5.4+ : on utilise le wrapper spip_htmlspecialchars.

MEDIA
révisions 80060, 80059

ajout de la prise en charge des documents .json.

révision 79799

Fermeture de boucle inutile certainement présente par erreur.

révisions 80001, 79288

Fournir la liste des documents joints dans $res[’ids’].

révision 79236

Afficher aussi les documents en statut prop dans l’onglet "Non publiés" de la médiathèque.
Ferme le ticket #3066

révision 78585

réparer l’upgrade depuis un SPIP 1.9 si on commence par supprimer connect.php et lancer l’install.

MEDIABOX
révision 79234

Même avec la media box désactivée, la « box_settings » apparaissait sur le site public (oubli des accolades du "if").
Ferme le ticket #2790

REVISIONS
révision 79304

history true sur le rechargement ajax du formulaire des révisions afin de pouvoir partager l’url d’une révision avec les copaings et les copines...
Ferme le ticket #3112

SAFEHTML
révision 79357

ne pas toucher aux attributs des balises a
Ferme le ticket #3117

SITES
révision 79824

réparer la syndication des flux ATOM dont la balise link est vide.

révision 79347

pour le fil rss "A suivre" de l’accueil de SPIP.

STATISTIQUES
révision 80105

Éviter une erreur sql dans le comptage.

révisions 79368, 79367

Réparer le lien Tout afficher de la page exec=stats_referers.

révision 78359

Un nouveau moteur de recherche reconnu : Qone8.

TEXTWHEEL
révision 79967

Fix de la fonction htmlspecialchars en ISO sous PHP 5.4+ : on utilise le wrapper spip_htmlspecialchars.

révision 79333

accepter les domaines comme .i2 (intranet) dans _EXTRAIRE_DOMAINE.
Ferme le ticket #3116

révisions 79138, 79139

Affichage par défaut des raccourcis ressource < http://...>
Attention : propre génère par défaut un <p> autour de son contenu même si celui-ci ne contient qu’une ligne. Du coup les < http://...> se retrouvaient tout seul dans un <p></p> qui cassait le paragraphe dans lequel ils étaient insérés. On corrige pour avoir un affichage par défaut le plus neutre possible.

Auteur denisb Publié le : Mis à jour : 15/08/21