SPIP
Article proposé
L’article « SPIP 4.2
(SPIP) » est proposé
à la publication depuis le mercredi 22 février 2023.
SPIP 4.2
mercredi 22 février 2023 , par b_b
SPIP 4.2 est une version qui suit les versions maintenues de PHP tout en
gardant exceptionnellement une compatibilité avec la version PHP 7.4.
Cette version fait un premier pas vers Composer avec l’introduction
d’un autoloader à usage interne et l’intégration de dépendances à
des librairies PHP via composer.json (notamment les polyfill PHP 8.0, 8.1
et 8.2 ainsi que le polyfill mbstring).
Sommaire
- Compatibilité PHP 7.4 à 8.2
- Qualité du code
- Nouvelles fonctionnalités et changements
- Plugins
Compatibilité PHP 7.4 à 8.2 [|Retour au
sommaire](#s-Compatibilite-PHP-7-4-a-8-2)
SPIP 4.2 nécessite PHP 7.4 minimum, et fonctionne jusqu’à PHP 8.2.
Il nécessite les extensions PHP : sodium, Zlib, Zip et Phar.
Comme pour SPIP 4.1, la compatibilité avec une nouvelle version de PHP a
nécessité de nombreuses corrections et adaptations dans le code de SPIP.
Cela concerne essentiellement des dépréciations des appels à
utf8_encode
, l’utilisation de propriétés de classes inexistantes et
des écritures de type "${var}"
.
Qualité du code |Retour au sommaire
Dans la lignée de SPIP 4.1
(SPIP), nous
avons continué à typer certains arguments et retours de fonctions pour
détecter au plus tôt certains appels incorrects.
De plus, les quelques classes PHP de SPIP ont été déplacées dans
ecrire/src
sous le namespace Spip.
Nouvelles fonctionnalités et changements [|Retour au
sommaire](#s-Nouvelles-fonctionnalites-et-changements)
Parmi celles-ci on peut noter :
- une meilleure sécurisation des contenus par l’utilisation de la
librairie HTMLPurifier à la place de SafeHTML - la possibilité d’éditer les logos des objets comme les documents,
et l’introduction d’une balise#ID_LOGO_
(par exemple
#ID_LOGO_ARTICLE
) qui retourne l’identifiant du document utilisé pour
le logo d’un objet - le support des backticks (
`
) pour insérer du code dans le
contenu éditorial - l’affichage de la langue des utilisateurs sur leur page et la
possibilité de l’éditer - la normalisation et l’appel systématique de l’API de notifications
lors de la modification des contenus éditoriaux - la possibilité d’alterner le sens de tri des listes qui utilisent le
critèretri
- l’amélioration du balisage HTML généré pour les blocs de code
- le moteur de base de données MySQL n’est plus forcé lors de
l’installation, ce qui permet d’installer SPIP sans aucune modification
sur un serveur qui utilise InnoDB - la prise en charge de l’utf8 pour le filtre
|match
- la possibilité de spécifier une jointure quand on utilise la balise
#CHAMP_SQL
(exemple#CHAMP_SQL{rubrique.titre}
) - la gestion des images haute densité lors du recadrage et de la
réduction - une meilleure gestion de l’affichage des mises à jour dans le pied
des pages de l’espace privé - ne plus autoriser un rédacteur ou une rédactrice à refuser ses
propres articles - une refonte visuelle des pages d’installation et de rappel de mot de
passe
Beaucoup de bugs ont aussi été corrigés, vous pouvez consulter la liste
complète dans le fichier CHANGELOG.md
(spip/CHANGELOG.md at 4.2 - spip - SPIP on GIT).
Plugins|Retour au sommaire
Bigup
- possibilité de redimensionner les images côté navigateur, avant
l’upload (les dimensions sont configurables depuis l’espace privé) - la prise en charge de la prévisualisation des images Webp et SVG
- ajout d’un pipeline
bigup_preparer_input_options
pour personnaliser
finement les options - ajout de deux events à l’API JavaScript
bigup.fileAdded
&
bigup.fileSubmitted
et compléter l’eventready
pour lui passer
l’objetform
en paramètre
Compresseur
- mise à jour de la librairie CSSTidy en version 2.0.3
- correction d’un bug dans la compression des fichiers CSS contenants
des écritures raccourcies sur les propriétés padding & margin
Filtres images
- correction d’un bug lors de l’usage du filtre
|image_typo
sous
Windows
Forum
- ajout d’icones SVG manquantes sur la page de gestion des forums
internes - correction du RSS du suivi des forums
- suivre le changement de comportement de
appliquer_filtre
etutiliser appliquer_si_filtre
à la place - limiter le nombre d’items à 100 dans les flux RSS produits
- suppression du filtre
|lignes_longues
maintenant géré en css
Medias
- appliquer
_TRAITEMENT_TYPO
sur le champCREDITS
et bien visualiser
le HTML suspect - permettre d’éditer un logo comme un document
- suppression du Sanitizer SVG qui est maintenant dans le plugin SafeHtml
- suppression du formulaire
FORMULAIRE_CHANGER_FICHIER_DOCUMENT
qui
n’est plus utilisé par SPIP (la fonctionnalité se trouve directement
dans leFORMULAIRE_EDITER_DOCUMENT
) - correction de l’affichage des documents, avec un titre long, en liste
compacte - correction de l’affichage des documents en mode case
- réparer l’usage de
#LOGO_DOCUMENT{align}
- utiliser une déclaration moins prioritaire pour ajouter le traitement
typo sur le champ#CREDITS
- suppression des boutons excédentaires de sens de tri sur certaines
listes de documents - ne pas contraindre la taille des images SVG
- amélioration du message d’erreur de taille de document
- lors d’une mise à jour depuis SPIP < 4.0, par précaution refaire un
alter sur le champ mode avant la migration des logos - correction d’un bug de sélection des fichiers lors du chargement de
documents depuistmp/upload
- correction d’un bug d’affichage des documents lorsque ceux-ci sont
affiché en mode « case » - mise à jour de la librairie getID3 en version 1.9.22
Plan
- utiliser l’API parents/enfants pour lister les objets enfants de
chaque rubrique - feuille de style plus flexible et icones SVG
Porte plume
– ajout d’un événement markItUpEditor.loaded
lorsque les barres
d’édition sont chargées
Révisions
- correction du flux RSS du suivi des révisions
SafeHtml
- ajout du Sanitizer SVG auparavant dans le plugin medias
- utilisation de la librairie HTMLPurifier à la place de SafeHTML
Sites
- filtrer la liste des sites par présence d’une syndication ou pas
- suppression du filtre
|lignes_longues
maintenant géré en css
SVP
- accepter des bornes du type, x, x.y, et x.y.z dans un intervalle de
compatibilités - permettre la mise à jour d’un plugin non compatible avec la version
courante de SPIP vers un état moins stable - tout cocher/décocher n’agit que sur les plugins visibles de la liste
lors d’un filtrage par recherche - amélioration de l’écran de progression d’installation des plugins
TextWheel
- support des backticks pour insérer du code dans le contenu éditorial
- refactoring de la mise en sécurité des textes
URLs étendues
- possibilité de trier par URLs verrouillées dans les listes d’URLs
- correction du sens de tri sur la liste des URLs
Squelettes dist
- afficher le langage des blocs de code en haut à droite
- compléter les CSS responsives pour les balises
video
,canvas
, ou
svg
- afficher les documents joints aux brèves dans l’espace public
- distinguer les styles des éléments
.spip_code inline
etblock
- réparer la fonctionnalité d’embed de document unique (non image)
sur les articles vides - permettre d’insérer deux formulaires de recherche dans la même page
- éviter que les paginations ne débordent sur petit écran
- suppression du filtre
|lignes_longues
maintenant géré en css - suppression des 3 formulaires inscription mot_de_passe et oubli,
désormais fournis par le core
— Envoyé par SPIP (https://www.spip.net/)