Changements entre 3.0.10 et 3.0.11

La fonction inc_yaml_to_array_dist() du plugin Yaml a été intégrée à SPIP 3.0.11. Si votre site utilise ce plugin, mettez-le à jour avant de procéder à la mise à jour de SPIP. Voir http://blog.spip.net/SPIP-3-0-11-wh...

Fichiers du core

44 fichiers impactés :
-  ecrire/action/inscrire_auteur.php
-  ecrire/balise/formulaire_.php
-  ecrire/balise/formulaire_inscription.php
-  ecrire/base/connect_sql.php
-  ecrire/inc/distant.php
-  ecrire/inc/filtres.php
-  ecrire/inc/lang.php
-  ecrire/inc/plugin.php
-  ecrire/inc/puce_statut.php
-  ecrire/inc/queue.php
-  ecrire/inc/simplexml_to_array.php
-  ecrire/inc/surligne.php
-  ecrire/inc/traduire.php
-  ecrire/inc/utils.php
-  ecrire/iterateur/data.php
-  ecrire/maj/svn10000.php
-  ecrire/public/aiguiller.php
-  ecrire/public/debusquer.php
-  ecrire/req/mysql.php
-  ecrire/req/pg.php
-  prive/echafaudage/contenu/objet.html
-  prive/echafaudage/hierarchie/objet.html
-  prive/echafaudage/hierarchie/objet.sans_rubrique.html
-  prive/formulaires/configurer_preferences.html
-  prive/formulaires/configurer_preferences.php
-  prive/formulaires/editer_logo.html
-  prive/formulaires/editer_logo.php
-  prive/objets/contenu/article.html
-  prive/objets/contenu/auteur.html
-  prive/objets/contenu/rubrique.html
-  prive/objets/infos/objet.html
-  prive/objets/liste/articles.html
-  prive/objets/liste/auteurs.html
-  prive/objets/liste/objets.html
-  prive/objets/liste/rubriques.html
-  prive/objets/liste/visiteurs.html
-  prive/spip_admin.css
-  prive/squelettes/contenu/article.html
-  prive/squelettes/contenu/auteur.html
-  prive/squelettes/contenu/rubrique.html
-  squelettes-dist/formulaires/ecrire_auteur.php
-  squelettes-dist/formulaires/mot_de_passe.php
-  squelettes-dist/formulaires/oubli.php
-  squelettes-dist/inclure/footer.html

révision 20606
ecrire/inc/lang.php
ecrire/inc/puce_statut.php
prive/echafaudage/contenu/objet.html
prive/echafaudage/hierarchie/objet.html
prive/echafaudage/hierarchie/objet.sans_rubrique.html
prive/objets/contenu/article.html
prive/objets/contenu/auteur.html
prive/objets/contenu/rubrique.html
prive/objets/liste/articles.html
prive/objets/liste/auteurs.html
prive/objets/liste/objets.html
prive/objets/liste/rubriques.html
prive/objets/liste/visiteurs.html
prive/squelettes/contenu/article.html
prive/squelettes/contenu/auteur.html
prive/squelettes/contenu/rubrique.html

appliquer les règles typographiques de la langue de l’article sur son texte (et son titre) dans l’espace privé. Pour cela, on reforme changer_typo() qui ne renvoit plus rien, et on annule la dérogation de lang_typo quand on lui passe une chaîne vide.
Ferme le ticket #2860

révision 20613
ecrire/balise/formulaire_inscription.php
ecrire/inc/filtres.php
ecrire/action/inscrire_auteur.php

tester_statut_inscription() revient à son rôle initial qui est de tester le mode fourni ou de retourner le meilleur mode possible si aucun mode n’est fourni lors de l’inscription. Il accepte aussi un id en second argument, comme c’était le cas en 2.1, non usité par défaut mais qui peut l’être si passé au #FORMULAIRE_INSCRIPTION. tester_config() est rebranché sur la fonction tester_statut_inscription().

révision 20640
ecrire/inc/filtres.php

un filtre liens_nofollow qui ajoute un rel="nofollow" à tous les liens du texte passé en argument.

révision 20641
ecrire/maj/svn10000.php

ne pas faire échouer la migration des liens quand la table source a des champs en plus non prévus au plan (mais on les perd quand même, ce serait encore à améliorer).

révision 20652
ecrire/public/aiguiller.php

le retour ajax en html ne nécessite pas d’en-tête (on s’en passait déjà dans toutes les autres occurences de ajax_retour() du fichier).
Ferme le ticket #2883

révision 20660
ecrire/inc/surligne.php

si on met une étoile dans un mot de recherche, surligner les mots trouvés sans étoile.

révision 20663
ecrire/inc/plugin.php

un point d’entrée pour une fonction de gestion de dépendance qui ajoute les plugins manquants (non implémentée pour le moment).

révision 20680
ecrire/req/pg.php

un indefini PHP rendait incorrecte la production postgresql.
Ferme le ticket #3018

révision 20683
prive/spip_admin.css
ecrire/inc/traduire.php
ecrire/inc/utils.php

Ajout d’un var_mode=traduction qui permet de surligner en vert les chaines de langues traduites ok, en jaune celles provenant du module écrire et en rouge celles non trouvées. On leur ajoute une bulle d’info donnant l’item source et la langue de traduction.

révision 20684
prive/formulaires/editer_logo.html
prive/formulaires/editer_logo.php

quand on vient d’upload le logo ou de supprimer le logo survol, afficher par défaut le champ d’upload du logo survol car on enchaîne possiblement les deux actions.

révisions 20685, 20687
ecrire/inc/filtres.php

Correction sur la fonction timestamp. Permet d’utiliser timestamp sur des #FICHIER qui sont des fichiers distants.

révision 20689
ecrire/balise/formulaire_.php

ne pas reformater les entitées numériques des saisies des formulaires cvt.
Ferme le ticket #3006

révisions 20691, 20693
ecrire/req/mysql.php

Quand on active _DEBUG_SLOW_QUERIES loger le nom de la boucle qui génère la requête et le squelette d’où elle vient quand c’est possible (en plus de l’url de la page et de l’IP du visiteur).

révisions 73118, 74095
squelettes-dist/formulaires/ecrire_auteur.php

correction de 2 item de langue. Prendre en compte le champ nobot.
Ferme le ticket #3011

révisions 20699, 20702
ecrire/inc/simplexml_to_array.php

Réparer inc_simplexml_to_array qui reçoit de (DATA) une string et non un Object. La fonction se charge donc de charger le xml via simplexml et le passe à xmlObjToArr qui fait la décomposition en tableau. allégeons le tableau de retour du XML en ne peuplant text, attributes et children que quand il y a du contenu (#VALEUR../children ne retournera rien de toute façon si le noeud n’existe pas).

révision 20701
ecrire/iterateur/data.php

puisqu’on embarque Textwheel (en général), et son décodeur Yaml, autant proposer par défaut un yaml_to_array, quitte à lancer une Exception si finalement on ne touve pas le décodeur (cas rare).

révision 20703
ecrire/inc/filtres.php

Amélioration de |print utilise pour afficher proprement n’importe quoi. On affiche in fine un pseudo-yaml qui permet de lire humainement les tableaux et de s’y repérer.

révision 20704
prive/objets/infos/objet.html

Légère amélioration de l’échafaudage pour les nouveaux objets qui n’ont pas surchargé leur bloc d’info : on affiche désormais "voir en ligne" ou "prévisualiser" suivant le cas. Ceci en testant évidement les infos de la déclaration de l’objet : seulement s’il a un squelette public, seulement s’il est publié, ou seulement si y a un champ de statut listé pour la prévisu.

révision 20706
ecrire/iterateur/data.php

une constante _DATA_SOURCE_MAX_SIZE pour fixer la taille maxi des data qui sont recupérées par la boucle DATA (initialisée à 2Mo).

révision 20707
ecrire/inc/distant.php

une constante _INC_DISTANT_MAX_SIZE pour fixer la taille maxi des données récupérées par recuperer_page() (initialisée à 2Mo, et non plus 1Mo, inflation oblige).

révisions 20708, 20709
ecrire/inc/simplexml_to_array.php

debug des namespace : il faut transmettre le namespace quand on décode les noeuds enfants, car il n’y a qu’à la racine qu’on peut les déterminer. Pour activer le namespace, il faut l’ajouter en argument de la source : <BOUCLE_flux(DATA) source simplexml, http://opendata..., namespace>. on peut appeller inc_simplexml_to_array en lui fournissant directement l’objet SimpleXML au lieu de la chaîne (usage externe par des plugins en appel direct).

révision 74099
squelettes-dist/formulaires/mot_de_passe.php
squelettes-dist/formulaires/oubli.php

prendre en compte le champ nobot.

révision 20723
ecrire/public/debusquer.php

correction js pour retour du toggle-bug.

révision 74554
squelettes-dist/inclure/footer.html

Éviter d’avoir 2013-2013 dans le pied.

révision 20733
prive/formulaires/configurer_preferences.html
prive/formulaires/configurer_preferences.php

Le changement de couleur depuis le formulaire des préférences persos était cassé (les & des urls passées dans la valeur couleurs_url étaient remplacés par &amp). On préfixe donc cette valeur par un _ pour corriger le problème.

révision 20740
ecrire/base/connect_sql.php

xxx_select renvoie la requête en cas d’erreur (une chaîne donc) et non pas false : du coup on appelait fetch() avec une chaîne au lieu d’une ressource ce qui provoquait des erreurs fatales à l’ouverture de la connexion sql dans certains scénarios.

révision 20741
ecrire/inc/queue.php

Quand un cron se finissait dans la même seconde qu’il avait commencé, il ne reprogrammait pas la date de prochaine occurence. Du coup il se relançait rapidement, n’avait rien à faire, ne reprogrammait pas la date non plus, et ainsi de suite, provoquant des appels inutiles en surnombre.

Fichiers de plugins-dist

DUMP
révision 74062

correction de css.

FILTRES_IMAGES
révision 73655

attention au cas où les filtres images generent un timestamp systematique sur les images produites.

révision 74143

parenthèse manquante dans le PHP, le favicon n’était plus lu.

FORUM
révisions 73063, 73064

Type email et url sur le login forum quand html5 est possible. suppression de l’argument focus inutile.

révision 73444

ajouter liens_nofollow() sur l’affichage des balises de la table forum, et passer statut et statut_ancien au pipeline post_edition quand on modère un forum.

révision 73468

le bloc des boutons d’actions par lot suit le scroll.

révision 73543

réparer les ancres des liens dans les mails de notification des forums.

JQUERY_UI
révision 74413

un petit _dist ici pour pouvoir surcharger cette fonction dans un plugin x ou y).

MEDIAS
révision 73073

une coquille empêchait la prise en charge des svg à l’upload (lecture des dimensions, protection des js inclus).

révision 73279

Quand on copie un document dans le site, les crédits sont modifiés ; unset de ce qui a été posté pour que cela s’affiche dans le formulaire après copie).

révision 74096

Ajout du pipeline afficher_contenu_objet sur la page exec=document_edit pour palier au fait que les documents n’ont pas de page "vue".

révision 74521

On ajoute un pipeline renseigner_document, pendant de renseigner_document_distant pour les fichiers locaux car : - on peut avoir plusieurs plugins récupérant des infos pour la même extension de fichier et on peut alors les combiner ; - cela évite, pour des plugins qui récupèrent les infos de x extentions diverses (pas un type en particulier) de créer x fichiers pour chaque extension de fichier.

PETITIONS
révision 73445

ajouter liens_nofollow() sur l’affichage des balises de la table petitions.

PORTE_PLUME
révision 73695

Icones du PP : Quand un plugin fournit un chemin complet vers une image, l’utiliser telle quelle. Si le find_in_path ne donne pas de résultat, ne pas insérer la règle CSS background:url() car cela provoque des chargements de page parasite dans certains navigateurs.

REVISIONS
révision 73562

Une tâche CRON pour optimiser les tables spip_versions et spip_versions_fragments, notamment en supprimant les entrées des objets disparus (supprimé après un temps avec le statut poubelle comme les articles, les documents qui se suppriment automatiquement tout seul, intervention manuelle dans la base de donnée...)

révision 73563

Tous les labels sont visibles sur la page des révisions pour savoir ce que cela représente.

révision 73564

Un label utilisable sur les logins des auteurs.

révision 73566

Pouvoir définir une fonction de diff spécifique pour un champ en particulier.

SAFEHTML
révision 74443

Ne plus utiliser preg_replace pour une expression régulière utilisant l’option /e (l’évaluation au niveau de l’expression reguliere pourrait être l’origine d’injection de code). Le code est aussi plus compatible avec PHP5.5 dans lequel le modifieur /e est déclaré comme obsolète.

STATISTIQUES
révision 73962

Quelques moteurs de plus.

SVP
révisions 73766, 73771

coquille de langue.

TEXTWHEEL
révision 73728

éviter les doubles insécables (dont utf8) avant et après les appels de note. trim() sur le contenu des notes pour ne pas ajouter d’autobr inattendu.

URLS_ETENDUES
révision 73931

Plusieurs bugs autour des urls propres et des collisions en urls propres : quand l’objet a une url suffixee en -xxx ne pas essayer de la reconstruire si le reste est bon ; quand on veut créer une url sans préciser l’id_parent, il faut s’assurer que l’url n’existe pas déjà, y compris avec un id_parent non nul ; sous SQLite url=’xxx’ est sensible à la casse, mais pas url LIKE ’xxx’ il faut donc utiliser une condition de ce type quand on crée l’url pour éviter les collisions de casse. À noter que du coup, en SQLite, le décodage des URLs reste dépendant de la casse. Ce n’est pas forcément problématique mais c’est à savoir.

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