Changements entre 3.0.8 et 3.0.9

Fichiers du core

45 fichiers impactés :
-  config/ecran_securite.php
-  ecrire/inc_version.php
-  ecrire/action/editer_objet.php
-  ecrire/action/inscrire_auteur.php
-  ecrire/auth/spip.php
-  ecrire/balise/formulaire_inscription.php
-  ecrire/base/abstract_sql.php
-  ecrire/base/objets.php
-  ecrire/inc/actions.php
-  ecrire/inc/autoriser.php
-  ecrire/inc/chercher_rubrique.php
-  ecrire/inc/cookie.php
-  ecrire/inc/feedfinder.php
-  ecrire/inc/filtres.php
-  ecrire/inc/headers.php
-  ecrire/inc/plugin.php
-  ecrire/inc/rubriques.php
-  ecrire/inc/utils.php
-  ecrire/inc_version.php
-  ecrire/lang/ecrire_fr.php
-  ecrire/lang/spip_fr.php
-  ecrire/public/compiler.php
-  ecrire/public/criteres.php
-  ecrire/public/debusquer.php
-  ecrire/public/parametrer.php
-  ecrire/req/mysql.php
-  ecrire/req/sqlite_fonctions.php
-  ecrire/req/sqlite_generique.php
-  ecrire/typographie/fr.php
-  prive/echafaudage/contenu/objets.html
-  prive/formulaires/configurer_reducteur.php
-  prive/formulaires/login.html
-  prive/formulaires/selecteur/articles.html
-  prive/formulaires/selecteur/generique.html
-  prive/formulaires/selecteur/rubriques.html
-  prive/formulaires/traduire.html
-  prive/informer_auteur_fonctions.php
-  prive/javascript/ajaxCallback.js
-  prive/javascript/login-sha-min.js
-  prive/squelettes/inclure/admin_vider_cache.html
-  prive/squelettes/inclure/head.html
-  prive/themes/spip/icons.css.html
-  prive/themes/spip/images/cfg-24.png
-  prive/themes/spip/lists.css.html
-  squelettes-dist/formulaires/inscription.php

16 tickets fermés :
2804, 2877, 2912, 2913, 2931, 2948, 2949, 2953, 2960, 2980, 2990, 2992, 2999, 3002, 3004, 3005

Corrections dans les traductions
-  anglais
-  corse
-  espagnol
-  russe

révisions 20538, 20539, 20568, 20569
ecrire/inc_version.php

mise à jour de version.

révision 20572
config/ecran_securite.php

Version 1.1.7

révisions 20562, 72982
ecrire/balise/formulaire_inscription.php
ecrire/inc/autoriser.php
ecrire/inc/filtres.php
ecrire/action/inscrire_auteur.php
squelettes-dist/formulaires/inscription.php

révision des autorisations d’inscriptions. La fonction tester_config devient un appel à une fonction surchargeable autoriser_inscrireauteur prenant en argument le type d’inscription et éventuellement l’ID d’une rubrique. Par défaut cette fonction n’accepte que les types 6forum et 1comite, et ignore la rubrique. Déléguer dans tous les cas l’autorisation de s’inscrire à autoriser("inscrireauteur", $mode, $id). Mais si aucun mode n’est fourni sur le #FORMULAIRE_INSCRIPTION, on choisit le meilleur possible parmi 1comite ou 6forum.

révision 20547
ecrire/req/sqlite_fonctions.php

la fonction « concat » de sql peut avoir plus de 2 arguments. Indiquons cela aussi à SQLite.

révision 20545
prive/javascript/ajaxCallback.js

si on utilise un plugin avec ’use strict mode ;’ $.ajax plante dedans car .caller n’est pas disponible. Proteger avec un try.catch.

révision 20544
ecrire/public/criteres.php

Revert de r20389 car TIMESTAMPDIFF n’est pas supporté par Mysql 4.x. rétablit le fonctionnement du critère {age ...}.

révision 20540
ecrire/action/inscrire_auteur.php

Inscription d’un auteur : le commentaire dit "Si mode inconnu laisser faire, c’est une extension non std", mais passer quand même par une autorisation, qui par défaut sera à false (puisque l’auteur est non connu, donc non identifié, il n’a aucun droit par défaut). Il suffit que autoriser("inscrireauteur", "xxx") renvoie true pour permettre l’inscription d’un auteur avec le statut xxx

révision 20536
ecrire/inc/rubriques.php

se protéger des références circulaires dans la table des rubriques dans la boucle HIERARCHIE. Plutôt qu’un code spécifique, on utilise la fonction générique calcul_hierarchie_in() que l’on modifie pour tenir compte de ce cas limite. Pour être homogène, on inverse l’ordre des rubriques qu’elle renvoie.
Ferme le ticket #3004

révisions 20534, 20535
ecrire/inc/rubriques.php

lorsque la table des rubriques est mal formée et contient une branche morte ou une référence circulaire dans les parents, la fonction propager_les_secteurs() tourne en boucle infinie. Correction : - protéger de ce risque par un maxiter initialisé par le nombre de rubriques de la table ; - revoir l’algo de mise à jour en procédant de proche en proche, par profondeur croissante et non pas "tant qu’il y a une rubrique mal rangée". Cela permet de plus de détecter le cas d’une table rubrique mal formée et de produire un log en conséquence. optimiser les updates en les faisant par groupe de rubriques de même secteur. poser un id_secteur=0 sur toutes les rubriques hors hiérarchie si il y en a (références circulaires, parents qui n’existent plus).
Ferme le ticket #3002

révision 20531
prive/squelettes/inclure/head.html

si surcharge de index.php, ne pas casser l’affichage du plan de site dans le privé.

révisions 20525, 20529
prive/formulaires/login.html

ajout de la variable lang dans le lien vers le formulaire de rappel du mot de passe.
Ferme le ticket #3005

révision 20523
ecrire/inc_version.php

la définition de _IS_BOT par le core est un fall-back si l’écran de sécurité n’a pas été appelé. C’est la definition de l’écran, plus à jour, qui est prioritaire.
Ferme le ticket #2999

révisions 20520, 20521
config/ecran_securite.php

liste plus exhaustive et complète des UA des bots, car ceux qu’on laisse passer faussent les stats (surestimées).

révision 20519
ecrire/inc/utils.php

les post AJAX sur un site iso-truc sont présumés en utf et importés dans le charset local par _request(). Mais ce n’est pas forcément le cas et le test de la preg n’est pas fiable, ce qui supprime des accents bien encodés à tort. On complète le test par un is_utf8() plus fiable.
Ferme le ticket #2804

révision 20518
ecrire/typographie/fr.php

ne pas ajouter d’insécable devant : si ce : est suivi de : (cas des adresses ipv6).
Ferme le ticket #2931

révision 20516
ecrire/inc/chercher_rubrique.php

quand une rubrique est selectionnée, il faut l’afficher dans le select, même si on a pas le droit d’y déplacer un article.
Ferme le ticket #2948

révision 20515
ecrire/lang/ecrire_fr.php

chaîne de langue manquante sur l’upgrade des plugins.

révision 20512
ecrire/inc/headers.php

quand l’url courante est profonde (url arbo) les redirections relatives étaient ambigues. On lève l’ambiguité en transformant en url absolue dès que la profondeur courante est supérieure à la normale et que l’url de redirection est relative.

révision 20509
prive/themes/spip/icons.css.html

zone clicable sur l’icône "Modifier ce..." lorsque la configuration des urls est activée.
Ferme le ticket #2913

révision 20499
prive/themes/spip/images/cfg-24.png

ajout du fichier icône cfg en 24px.
Ferme le ticket #2992

révisions 20495, 20497
ecrire/inc/actions.php

le paramètre optionnel "public", forçant la construction d’URL dans l’espace public doit être aussi proposé dans la fonction redirige_action_auteur(), autrement ça oblige à la réécrire à chaque fois.

révision 20494
ecrire/public/parametrer.php

articles virtuels : faire une redirection propre via la fonction redirige_par_entetes(), qui explicite le status 302 par défaut (il était indéterminé dans le code précédent). La constante _STATUS_REDIRECTION_VIRTUEL permet par ailleurs de personnaliser ce status en le passant en 301 systématique par exemple.

révision 20489
ecrire/req/mysql.php

ajouter un debug utile dans log/mysql-slow.log ; avec : define(’_DEBUG_SLOW_QUERIES’, true) ; dans mes_options.

révision 20488
prive/informer_auteur_fonctions.php

si un login n’existe pas, plutôt que de piocher les infos sur un autre login (au risque de fournir la photo d’un auteur sans lien lorsqu’on se trompe dans son email), inventer une réponse crédible à base de secret_du_site(), de la date du jour, et du login.

révision 20486
ecrire/public/compiler.php

profiler les boucles dans tmp/profiler.log si leur temps de calcul dépasse un certain seuil (à fixer par exemple avec define(’_BOUCLE_PROFILER’, 5000) ; pour 5 secondes).

révisions 20484, 20490
ecrire/lang/spip_fr.php
ecrire/inc/chercher_rubrique.php

accessibilité ; ajouter un alt explicite sur la loupe qui affiche la liste des rubriques ; ajout de la chaîne de langue correspondante.
Ferme le ticket #2990

révision 20482
ecrire/req/sqlite_generique.php

support de IF NOT EXISTS en fonction de la bonne version de SQLite.
Ferme le ticket #2949

révision 20481
prive/themes/spip/lists.css.html

améliorer l’affichage des puces de changement de statut au survol.
Ferme le ticket #2953

révision 20479
prive/echafaudage/contenu/objets.html

l’icône d’un objet peut avoir été déclarée explicitement, donc c’est cette info qu’on utilise.

révision 20478
ecrire/public/criteres.php

ne pas casser un critère {annee=2013} sur une table avec un champ année.
Ferme le ticket #2912

révision 20477
prive/formulaires/configurer_reducteur.php

retrouver la possibilité d’utiliser Imagemagick (Convert).
Ferme le ticket #2877

révision 20476
ecrire/inc/cookie.php

comparer le nom du cookie avant remplacement du préfixe pour déterminer httponly.
Ferme le ticket #2960

révision 20468
ecrire/inc/filtres.php

optimiser #PRODUIRE : - on ne reécrit le fichier que quand il change effectivement en passant par un fichier intermédiaire .last (évite le renouvellement inutile des timestamp, qui produisent des feuilles compilées inutilement) ; - quand on reécrit le fichier il faut appeler clearstatcache() sur ce fichier, sinon PHP ressert le vieux timestamp jusqu’à la fin du hit, et il faut recharger 2 fois la page pour avoir la mise à jour.

révision 20467
ecrire/action/editer_objet.php

quand on crée un objet, prendre le premier statut déclaré si dispo, sinon prepa (plus générique).

révision 20460
ecrire/public/debusquer.php

en mode debug, ne pas interpréter les critères de boucle (comme par exemple : {"<br />"}).

révision 20458
ecrire/base/abstract_sql.php

sql_showbase() et sql_showtable() ne génèreront plus de logs d’erreur inopportuns.

révisions 20456, 20457
prive/formulaires/selecteur/rubriques.html
prive/formulaires/selecteur/generique.html
prive/formulaires/selecteur/articles.html

chargement non bloquant en utilisant getScript (qui est asynchrone).

révision 20452
prive/formulaires/traduire.html
ecrire/base/objets.php

proposer la clé ’texte_definir_comme_traduction_objet’ dans la déclaration de l’objet éditorial pour définir la chaîne « Ce X est une traduction du X numéro :» qui pour l’instant s’affichait systématiquement avec le texte ’article’ erroné. On mappe pour les articles la chaîne de langue déjà existante. Ainsi « tradrub » ou d’autres plugins ayant des objets éditoriaux avec traductions peuvent définir les bons textes.

révision 20443
ecrire/inc/plugin.php

ne plus limiter à 100 la liste des plugins installés.

révision 20441
prive/javascript/login-sha-min.js
ecrire/auth/spip.php

pour éviter deux requètes, on concatène les deux js obligatoires du login dans un nouveau fichier minifié.

révisions 20430, 20432, 20435
ecrire/inc/feedfinder.php

ne pas récupérer les feeds opensearch. déplacement du fichier dans le plugin sites.

révisions 20427, 20428
prive/squelettes/inclure/admin_vider_cache.html
ecrire/lang/ecrire_fr.php

passage en chaînes de langue de textes restés ’en dur’.
Ferme le ticket #2980

Fichiers de plugins-dist

6 tickets fermés :
2787, 2889, 2912, 2955, 2983, 3004

COMPRESSEUR
révision 72767]

la librairie Minify_HTML note en TODO qu’elle doit prendre en compte les attributs avec multiples retours ligne. En attendant une solution générale, on échappe les <input> pour ne pas fausser ce qui est posté en hidden lors de la prévisu.
Ferme le ticket #2787

révision 72763]

mise à jour de la librairie Minify_HTML.

révision 72562

clear_stat_cache() pour que le timestamp soit à jour dans la page construite dans ce hit.

FORUM
révision 72422

éviter un notice/warning.

MEDIABOX
révision 72287

Aérer la navigation dans la thickbox (permet d’avoir plus de 100 images).
Ferme le ticket #2983

MEDIAS
révision 72335

Ajout de la prise en compte de l’extension ".tar".

PETITIONS
révision 72609

permettre aux pétitions de bénéficier d’un permalink pour s’y retrouver malgré les paginations.

REVISIONS
révision 72557

ne pas casser un critère {annee=2013} sur une table avec un champ année.
Ferme le ticket #2912

révision 72198

Permettre à un plugin utilisant les révisions de spécifier les labels des champs sous révision via un nouveau pipeline revisions_chercher_label. La valeur par défaut sera toujours la même qu’auparavant.

SITES
révision 72733

Certaines dates de flux sont formatées dans la langue du flux et non en anglais. On essaye de remplacer le nom des mois par le nom anglais pour interpréter la date + Certaines dates finissent par UT au lieu de UTC qui bloque la conversion par strtotime, on corrige si necessaire + Quand on a pas réussi à lire la date, il faut forcer à la date du jour et pas laisser 1970.
Ferme le ticket #2889

révision 72205

Déplacement du fichier feedfinder.php depuis le core, il n’est utile que via ce plugin.

SQUELETTES_PAR_RUBRIQUE
révision 72917

se protéger des références circulaires dans les rubriques lorsqu’on stylise (et on protège avec une profondeur maxi de 10000 dans tous les cas).
Ferme le ticket #3004

STATISTIQUES
révision 72744

Réparer la largeur totale de la barre dans les sous rubriques : elle reprend la largeur correspondant au nombre de visites de la branche parente + ajustements de style sur la page.

révisions 72715, 72716, 72717

Lisibilité et ergo des statistiques : - échelle axe des Y à droite (près des mesures les plus récentes) ; - légende en dessous des graphes, en ligne ; - Titre en fer à gauche, regroupé avec les actions de pagination ; - graphe des mois depuis l’origine du site par défaut (graphe des jours inchangé sur 90 jours) ; - axe des X : date humainement lisible (15 janvier au lieu de 15/01/2013) ; - éviter les effets de gradients sur les barres ça gène la lisibilité. On met en plein avec une très légère transparence pour ne presque pas distinguer border et background ; - le gris des weekend était à peine visible sur certains écrans, on le fonce ; - la barre des changements d’année est de largeur 1 mois sur le graphe des mois ; - ne pas masquer l’explication car elle n’est pas visible ,- hiérarchie de l’info dans le tableau des résumés ; - page des referers : réduire la largeur de la colonne gauche pour éviter cette impression de texte centré ; - mettre la miniature en float:right et réduire sa taille ; - réparer l’affichage de la répartition par rubrique qui était tout cassé car construit avec des table dans des tables dans des tables... héritant toutes des styles par défaut + Un peu de refactoring js en utilisant closest(’.graphique’) au lieu d’enchaîner les .parent() qui rendent le code peu robuste.

TEXTWHEEL
révision 72918

nettoyer_raccourcis_typo() supprime dorénavant les raccourcis d’ancres.

révision 72774

ne pas ajouter d’insécable devant : si ce : est suivi de : (cas des adresses ipv6).

VERTEBRES
révision 72555

certains critères ne se compilent pas bien {logo}, {recherche}... les ajouter aux exceptions + utiliser #CHAMP_SQL{} systématiquement pour éviter homonymie malheureuse.
Ferme le ticket #2955

Portfolio

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