SPIP 4.4

This LTS branch will benefit from extended support until July 2027.

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 an action key to the post_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 and remove_link actions can handle a qualifier
  • add_menus_args pipeline, in addition to the add_menus pipeline, which passes on the arguments to definir_barre_boutons().
  • Purging var_nullify variables from the context in traiter_appels_inclusions_ajax.
  • #PARAM tag to retrieve service container parameters
  • The |affdate filter accepts a timestamp as input
  • _image_extensions_logos() function and image_extensions_logos pipeline
  • cli command to purge cache images that are too old (cache-gd2 and cache-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 a medias 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 to IMAGETYPE_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 than readfile() which requires the file to be loaded into memory.
  • Requesting remote files with STREAM_CRYPTO_METHOD_TLS_CLIENT.
  • Replacing obsolete tt tags with code.
  • 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 in load and for validation in verify.
  • 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 in image_rotation().
  • Form return message in div instead of p.
  • The audio/x-m4a mimetype is an alias for audio/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 by phraser_placeholder_memoriser() or phraser_placeholder_reinjecter().
  • Internal function public_generer_boucle_placeholder() to be replaced by public_placeholder_generer().
  • Language files populating a $GLOBALS are deprecated; return an array directly
  • Obsolete constant _DIR_IMG_PACK.
  • Global $traiter_math, $tex_server, fonctions produire_image_math(), traiter_math() et replace_math(), mathjax plug-in should be used instead
  • Modifying the $formats_logos global is deprecated: using the image_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, and rtl_mb_ord(), rtl_reverse(), rtl_visuel(), printWordWrapped(), produire_image_typo() functions, install the plug-in Images 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

Author jack Published :

Translations : عربي, English, français, Português