Compatible with PHP 7.4 to 8.4
SPIP 4.4 requires PHP 7.4 or higher, and runs up to PHP 8.4.
It requires the following PHP extensions: sodium, Zlib, Zip and Phar.
Changes introduced by SPIP 4.4
The most striking changes are the fact that SPIP no longer sends passwords in clear text in registration and password reminder emails.
On the technical side, it should be noted that the write
, prive
and template-dist
folders, as well as the security screen, are installed using Composer. This changes nothing for people who use spip_loader. Also worth noting is the introduction of #LAYOUT_PRIVE
, #TRAD
and #URL_DOCUMENT_FICHIER
tags.
There has also been a series of optimisations for image filters.
The #LAYOUT_PRIVE
tag replaces #LARGEUR_ECRAN
and enables new layouts to be used for pages in the back office:
#LAYOUT_PRIVE{fluide}
, the central content adapts according to the presence or absence of content in #extra
and #navigation
.
#LAYOUT_PRIVE{pleine-largeur}
#LAYOUT_PRIVE{complements-gauche}
#LAYOUT_PRIVE{complements-droite}
#LAYOUT_PRIVE{complements-bas}
#LAYOUT_PRIVE{complements-bas-inverse}
The #TRAD
tag avoids writing things like #VAL{module:cle}|_T
, for example #TRAD{module:cle, #ARRAY{param, val, ..}, #ARRAY{option, val..}}
.
Directories
- The vendor/
directory has been completed, with the arrival of the first spip-league
libraries, which will provide an initial gateway to elements of the future SPIP 5.0.
- There is now also a config/spip
directory.
This version also brings other improvements and bug fixes.
Security
- Cleaning up certain author entries on the author edit form (avoids ending up in logs if verbose logs are activated)
- Updating the list of bots & add antennapod (RSS reader) as a legal bot
Added
- Not sending passwords in clear text, instead sending links to set your password
-
copie_locale()
passes anaction
key to thepost_edition
pipeline - Additional language strings for item lists
-
#LAYOUT_PRIVE
tag - Tag
#TRAD{module:key, #ARRAY{param, val, ..}, #ARRAY{option, val..}}
- #MIME_TYPE tag calculated
-
#URL_DOCUMENT_FICHIER
tag always returns the file of a document, which allows#URL_DOCUMENT
to be used to refer to a web page when desired. Document templates are updated to use this tag. - The
add_link
andremove_link
actions can handle a qualifier -
add_menus_args
pipeline, in addition to theadd_menus
pipeline, which passes on the arguments todefinir_barre_boutons()
. - Purging
var_nullify
variables from the context intraiter_appels_inclusions_ajax
. -
#PARAM
tag to retrieve service container parameters - The
|affdate
filter accepts a timestamp as input -
_image_extensions_logos()
function andimage_extensions_logos
pipeline - cli command to purge cache images that are too old (
cache-gd2
andcache-vignettes
) -
image_oriente_selon_exif()
filter to automatically reorient an image according to its exif tag
Changes
- The
ecrire
,prive
,squelettes-dist
folders are installed with Composer - The security screen is installed with Composer
- Updating language strings from trad.spip.net
- Use the
compter_contributions_auteur
pipeline in an author’s info box - Ability to customise the singular and plural language strings in the title of all object lists
- New layouts for back office (
#LAYOUT_PRIVE
) :defaut
,fluide
,pleine-largeur
,complements-droite
,complements-bas
,complements-bas-inverse
- Environment values explicitly emptied in ajax are passed through
var_nullify
to be completely purged. - Allowing ‘new’ visitor accounts to be sorted by registration-reminding date
- Add the publication time next to the date
- Use CSS variables and logical properties in the back office to avoid compiling CSS files
- The task control page uses the layout
complement-gauche
- Using
image_extensions_logos()
instead of$GLOBALS[‘formats_logos’]
. - Image filters such as
image_recadre
reorient the image according to the orientation exif
Corrections
- In the back office, avoiding a horizontal scrollbar in certain operating system configurations.
- Aligning the content of the en_lignes band with that of the banner.
- Better display of object lists on small screens.
- No bottom margin on last items in responses
- Load autoloader in
prive.php
file - Avoiding a PHP warning if the logo file is not present
- Following medias on
inc_vignette_dist
which expects amedias
parameter - Reestablishing hiding documents viewed in the document block
- No longer declaring
z-index
on columns that are already in flex - Fixing image rotation with convert
- Being able to scroll after leaving full-screen mode using the
<ESC>
key - Using a value for
IMAGETYPE_SVG
which does not risk a collision with a future image format addition (19 has been attributed toIMAGETYPE_AVIF
in the meantime) - Fixed a fatal error when calling
phraser_champs_interieurs()
. - Using
fpassthru()
to deliver files directly and avoid a memory limit rather thanreadfile()
which requires the file to be loaded into memory. - Requesting remote files with
STREAM_CRYPTO_METHOD_TLS_CLIENT
. - Replacing obsolete
tt
tags withcode
. - Authors’ emails are hidden by default
- Sending the number of contributions to articles to the
compter_contributions_auteur
pipeline - Passing the url to the
pass_reset_url
language item - For the generic object institution form, test the
publierdans
authorisation using the parent declared by the parent API - In the generic object institution form, using the same test set for displaying the
published
status inload
and for validation inverify
. - Being able to remove the image from the login screen
- Being able to change the main logo when there is a hover logo
- Missing inclusion in some ajax contexts for bigup
- Checking the existence of
exif_read_data()
. - Avoiding warnings on
image_oriente_selon_exif()
in the absence of an image - Optimising filters
image_aplatir()
,image_renforcement()
,image_flou()
,image_sepia()
,image_flip_vertical()
,image_flip_horizontal()
,image_nb()
,image_gamma()
&image_rotation()
- Correction of
crop
parameter inimage_rotation()
. - Form return message in
div
instead ofp
. - The
audio/x-m4a
mimetype is an alias foraudio/mp4a-latm
. - Calling to global
$formats_logos
replaced by_image_extensions_acceptees_en_entree()
. - Correcting logo duplication (Duplicator plug-in for example) if the
tmp/upload
folder does not exist - Displaying the document role selector (with the plug-in in question)
- Displaying of previews in
emb
templates - Fixed mediaelements library plug-in path and removed Flash fallback
- Added the
afficher_config_objet
pipeline which was missing on the keywords and keyword_groups pages. - De-double status test in an SQL query.
- Support for SPIP 4.4 in the plug-in repository.
- Invalidating the cache (even for bots) when a permanent URL is added.
Deprecating
- PHP file inclusion via
<INCLURE(file.php)>
or<INCLURE{fond=file.php}>
. - Closing tag
</INCLURE>
. -
#LARGEUR_ECRAN
tag for private templates to be replaced by#LAYOUT_PRIVE
. - From SPIP 5 onwards, calling language strings in templates will be case-sensitive, and there will no longer be automatic conversion to lower case.
- Internal function
phraser_boucle_placeholder()
to be replaced byphraser_placeholder_memoriser()
orphraser_placeholder_reinjecter()
. - Internal function
public_generer_boucle_placeholder()
to be replaced bypublic_placeholder_generer()
. - Language files populating a
$GLOBALS
are deprecated; return an array directly - Obsolete constant
_DIR_IMG_PACK
. - Global
$traiter_math
,$tex_server
, fonctionsproduire_image_math()
,traiter_math()
etreplace_math()
,mathjax
plug-in should be used instead - Modifying the
$formats_logos
global is deprecated: using theimage_extensions_logos
pipeline - Calling the
$formats_logos
global is deprecated, using the_images_extensions_logos()
function. - Depreciation of the
_DIR_RESTREINT_ABS
constant -
|image_typo
filter, andrtl_mb_ord()
,rtl_reverse()
,rtl_visuel()
,printWordWrapped()
,produire_image_typo()
functions, install the plug-inImages typographiques
Withdrawals
-
verif_butineur()
,editer_texte_recolle()
functions and_texte_trop_long
form environment (unused - used for IE) - Support for the
_texte_trop_long
form environment (used for IE) - An obsolete and untranslated language file.
Supported plug-ins
As with the previous version, most of the plug-ins are already compatible with SPIP 4.4, which will make upgrading easier.
See: How to upgrade SPIP