SPIP 4.2

Changes brought by SPIP 4.2

SPIP 4.2 is a version that follows the maintained versions of PHP while exceptionally maintaining compatibility with PHP 7.4. It is also a first step towards Composer with the introduction of an autoloader for internal use and the integration of dependencies to PHP libraries via composer.json (notably the PHP 8.0, 8.1 and 8.2 polyfills as well as the mbstring polyfill).

PHP 7.4 to 8.2 compatibility

SPIP 4.2 requires PHP 7.4 minimum, and works up to PHP 8.2.
It requires the PHP extensions: sodium, Zlib, Zip and Phar.

As with SPIP 4.1, compatibility with a new version of PHP required numerous corrections and adaptations in the SPIP code.

This mainly concerns deprecation of calls to utf8_encode, the use of non-existent class properties and ${var} type entries.

Code quality

In the line of SPIP 4.1, we have continued to type certain function arguments and returns to detect incorrect calls as quickly as possible.

In addition, the few PHP classes in SPIP have been moved to ecrire/src under the Spip name-space.

New features and changes

Among these we can note:

  • better content security by using the HTMLPurifier library instead of SafeHTML
  • the ability to edit object logos as documents, and the introduction of a #ID_LOGO_ tag (e.g. #ID_LOGO_ARTICLE) which returns the identifier of the document used for an object logo
  • support for back-ticks (`) to insert code into editorial content
  • the display of the language of users on their page and the possibility of editing it
  • the standardisation and systematic call of the notifications API when modifying editorial content
  • the possibility of alternating the sorting direction of lists that use the tri criterion
  • improved HTML markup generated for code blocks
  • the MySQL database engine is no longer forced during installation, allowing SPIP to be installed without any modification on a server that uses InnoDB
  • utf8 support for the |match filter
  • the ability to specify a join when using the #CHAMP_SQL tag (e.g. #CHAMP_SQL{section.title})
  • handling of high density images when cropping and reducing
  • better management of the display of updates in the footer of the private area
  • no longer allowing an editor to refuse his or her own articles
  • a visual redesign of the installation and password reminder pages

Many bugs have also been fixed, you can see the full list in the file CHANGELOG.md.

List of articles with the possibility of alternating the sorting direction
Configuring browser-side image resizing before upload
Logo of an article editable as a document
The spip.net password reminder page
The page uses the same background colour or image as that defined for the login page.



  • ability to resize images on the browser side, before uploading (dimensions are configurable from the private area)
  • support for Webp and SVG image previews
  • added a bigup_preparer_input_options pipeline for fine tuning options


  • update of the CSSTidy library to version 2.0.3
  • fixed a bug in the compression of CSS files with shortened padding & margin properties


  • adding missing SVG icons to the internal forum management page
  • limited the number of items to 100 in the RSS feeds produced
  • removed |lignes_longues filter now handled in css


  • allow editing a logo as a document
  • remove the SVG Sanitizer which is now in the SafeHtml plugin
  • removal of the FORMULAIRE_CHANGE_DOCUMENT_FILE form which is no longer used by SPIP (the functionality is to be found directly in the FORMULAIRE_EDITER_DOCUMENT)
  • removal of excess sort direction buttons on some document lists
  • not constraining the size of SVG images
  • fixed a file selection bug when uploading documents from tmp/upload
  • updated getID3 library to version 1.9.22

Site Map in the Private Space

  • use the parent/child API to list child objects in each section
  • more flexible stylesheet and SVG icons


  • toolbar uses back-tick and triple back-tick for code blocks
  • added a markItUpEditor.loaded event when edit bars are loaded


  • correction of the revision tracking RSS feed


  • added SVG Sanitizer previously in the medias plugin
  • use of the HTMLPurifier library instead of SafeHTML


  • filter the list of sites by presence of a syndication or not
  • remove |lignes_longues filter now managed in css


  • accept bounds of type, x, x.y, and x.y.z in a compatibility range
  • improve the plugin installation progress screen

TextWheel pour SPIP

  • support for back-ticks to insert code into editorial content
  • re-factoring of text security


  • display the code block language in the top right corner
  • complete responsive CSS for video, canvas, or svg tags
  • display documents attached to news items in the public area
  • distinguish styles for .spip_code inline and block elements
  • allow two search forms to be inserted on the same page
  • prevent paginations from overflowing on small screens
  • remove |lignes_longues filter now handled in css
  • removed the 3 forms registration, password and forgot, now provided by the core


Author jack Published :

Translations : English, français