SPIP 1.9.2

The notable changes in this version are:

  • a number of new image filters and image filter optimisation;
  • new functionality in the backup/restore tools;
  • a more responsive caching system;
  • the introduction of the jQuery JavaScript library;
  • the directory structures have been revised;
  • an extensible XHTML validator;
  • a programming interface (API) for managing authorisations and changes;
  • more accurate site visit statistics.

Several innovations concerning the application programming interface (API) of SPIP, specifically the number of functions available to programmers (especially for plugins).

This new version, therefore, earns much of its credit from the new plugins that will become available (for example, the "crayons" plugin which enables editing articles directly from the public site ; the automatic XHTML validation plugin, etc.)

When migrating an existing site to this new stable version, the following notes are important:

  • directory reorganisation, in particular the relocation of CACHE and ecrire/data to tmp/ ; image thumbnails relocated to local/, and relocating configuration files (mes_options.php, connect.php) to config/;
  • the ecrire/ directory therefore, now only contains scripts, and it can be shared amongst several site URLs (refer to the article on shared provisioning);
  • If you use image filters (most notably image_reduire), a now-repaired bug has broken compatibility in the thumbnail naming convention. So SPIP will need to recreate all your thumbnails. You can delete thumbnails in the IMG directory prior to migration.

Here is a more detailed list of changes:

Private area

  • Compliance with XHTML 1.0 Transitional in the private area (and even 1.0 Strict except for some Transitional attributes not fully translatable in Strict XHTML);
  • some new document icons;
  • downloadable statistics in CSV format;
  • more accurate statistics (a prior bug tended to significantly overestimate the total number of site visitors);
  • automatic generation of GD2 thumbnails:
    • detection of the maximum size of an image that can be managed to avoid the errors that occur when uploaded images are too large. Large images are maintained as they are ;
    • this detection is achieved with a single calculation in the Configuration>Advanced Functions page. Visually this is represented by a gauge which displays the maximum number of pixels used in green (in millions of pixels);
  • document/image uploads:
    • uploads are possible during article creation ;
    • uploads no longer loose recent changes made to the text;
  • backup :
    • easy backups: no authentication required, and backup filenaming so that many can be kept concurrently;
    • backup of site and plugin configurations (except those that are linked to the server configuration);
    • restores possible from previous versions or backups created by phpmyadmin (in XML format);
    • restores with merging instead of overwrite, with logo importing;
    • faster restore with corrections on the handling of HTML headers.

Public area

  • Generalities
    • an embedded internal XHTML validator allows the validation of pages produced by the templates (using the "Analyse XML" button)
    • XHTML indent formater available to produced well-formated code
    • the document add column can be used in the templates [(#ID_ARTICLE|afficher_documents_colonne)]
  • {criteria}
    • {fusion}: allows the regrouping of search results with joins on a specific field (GROUP BY as it is known in SQL)
    • the dynamic par criterion {par #ENV{thing}} now supports thing=hasard
    • an experimental like criterion
  • #TAGS
    • #ARRAY{key1,value1,key2,value2...} allows the creation of a variable length table (useful for constructing a table for a #SET and/or for use with a dynamic "IN" criterion )
    • #EDIT{xxx} in the class of an element that surrounds a tag #XXX makes it possible to edit that field with the help of the crayons plugin (refer to the spip-contrib documentation)
    • #TOTAL_UNIQUE allows for the calculation of the number of different elements obtained with the |unique filter
  • |filters
    • |concat{value1,value2,..} allows the concatenation of several items.
    • |compacte (and |compacte_js or |compacte_css) allows the compression of CSS or javascript by removing comments. This filter takes as argument the file name, and returns a new file name which is then used in it’s place <link rel="stylesheet" href="[(#CHEMIN{spip_style.css}|compacte)]" type="text/css" media="all" />
    • |date_822: for certain RSS 2.0 feeds (notably photocast), it’s necessary to insert the date in RFC 822 (<pubDate>) format
    • |paragrapher in order to always place HTML paragraphs around text (and not only if the text comprises at least two paragraphs).
    • |url_absolue_css return all CSS relative URLs as absolute URLs (to be used with compacte for example)
    • improvements: |direction_css maintains background images and propagates them into @import
  • Reworking and standardisation of image filters
    • All image_xx filters respect attributes passed as arguments. They might also change :
      -  the src attribute (by definition)...
      -  the style, width and height attributes if the image size changes
      -  the class attribute to include or remove the format_png attribute depending on whether the final image is in png format or not
    • The following image filters have been added:
      -  |image_imagick{php_imagick_function, variables,...} allows for the application of any php_imagick library function: new filters hitherto unavailable in SPIP; some of which are very impressive; but which function only on alpha transparent images
      -  |image_recadre{width,height,position} to reframe an image ("cropping" in Photoshop) with combinations of left/center/right and top/center/bottom for positioning (e.g. ’left center’)
      -  |image_renforcement which sharpens the image(the exact opposite of image_flou), to be used principally on preview thumbnails which become sharper
      -  |image_select{min_width,min_height,max_width,max_height} allows the targeting of images which will be processed by image filters that follow. For example, this [(#TEXTE|image_select{50,50}|image_masque{...})] could be used to resize document or button icons ...

Directory reorganisation

    • no more ecrire/data, no more need for write privileges to the ecrire directory (connect.php has been relocated to config/ )
    • tmp/ stores everything that is temporary and not accessible to the navigator (includes cache/)
    • local/ stores everything that is temporary and is accessible to the navigator (includes image thumbnails)
    • IMG/ stores everything that is permanent and accessible to the navigator
    • config/ stores everything that is permanent and not accessible to the navigator

API (application programming interfaces, intended for developers)

  • jQuery 1.1 is included in SPIP, loaded into the private area by default, and into the public area if the squelette includes #INSERT_HEAD ; this JavaScript library is documented on the site www.jquery.com
  • Continuing the reorganisation of the code to separate display and database operations, and to resolve overloading
  • authorising (’view’) .. throughout the private area so as to permit access filtering and the opening of new editing privileges
  • the recuperer_page function allows for SOAP calls by providing a $data string (headers+two linefeeds+xml body)
  • API for installation/uninstallation of plugins : plugins which manage their own installation are visually identifiable with an icon
  • "modeles" can use JavaScript which is always active, even in the private area
  • JavaScript in articles is deactivated in the private area, but active in the public area (this rule can be modified). This allows for implementing JavaScript and jQuery behaviour directly in the articles.
  • description in the HTTP page headers of the installed plugins list and of their version (which can be deactivated with $GLOBALS['spip_header_silencieux'] = true;)

Bug fix
Mysql 5 : Certain mySql server configurations cause problems, and the new constant _MYSQL_SQL_MODE_TEXT_NOT_NULL is available to remedy this problem until the redefinition of tables in the next version (set it to 1 in mes_options)
the names of thumbnails coming through image_reduire may have the same names for images from 2 different sources

As per usual, these improvements will be quickly included in the official documentation with detailed examples. Until then, don’t hesitate to ask for advice from the user lists !

Maintenance Version 1.9.2a

SPIP 1.9.2a was released on 14 March 2007.

This version [8878] did not provide any new features, but was essentially issued to repair several bugs:

-  avoiding a Safari crash and several other bugs under IE and FF (for sites where the URL contains a ~) during document uploads
-  compatibility with the new versions of PHP (4.4.6) and in particular with PCRE
-  avoid an error occurring with free.fr on the filemtime of missing files
-  shortcuts used outside of shortcut blocks (exec=articles_page)
-  correction of the interface used for "releasing articles’
-  Visitors and authors in the trash should not have access to the internal messaging system.
-  do not construct empty thumbnails if the remote file can not be retrieved
-  lack of details on anonymous revisions
-  add a document column into news items
-  better heuristics for searching the svn version
-  cache for executing squelette templates in the private zone
-  filter corrections for indexing robots
-  various code clean-ups and CSS settings

Maintenance Version 1.9.2b

SPIP 1.9.2b was released on 23 May 2007.

This version [9381] does not provide any new features, just cleans out seveal bugs:
-  the link [bla{blabla}->url] was broken, except in the case where you had a hreflang
-  several corrections in the agenda code
-  more efforts towards making SPIP XHTML compliant
-  &iexcl; which would display during a Spanish restore operation
-  safeguards against PREG weaknesses in PHP-4.4.6
-  the welcome language is determined by the visitor during installation
-  adjust the floats without fixed width after passing them through win_png.htc on IE
-  incorrect syntax during an LDAP installation
-  refreshing documents after uploading in IE and Opera
-  the import_identifie_id_type() function corrected
-  securing the parametre_url argument
-  <INCLURE(xxxxx.php3)> was broken
-  bad include for squelette template errors
-  crash in autoriser if spip_query() has not already been loaded
-  partial upgrade would fail on some old versions
-  images impossible to be linked to the article if the documents are prohibited
-  bad saving of partial revisions (with crayons, for example)
-  the couper() file would crash on a page footer note of several lines near the start of the text
-  SQL author fix in certain autoriser() code
-  (and, last minute) a correction of a bug occurring during restores of large dump files (restart after timeout)

Maintenance Version 1.9.2c

SPIP 1.9.2c was released on 19 September, 2007.

This version corrects a major security hole; Everyone using an earlier version should update as soon as possible. Version 1.9.2c also provides some maintenance bug fixes and improvements:

  • Bug fixes :
    • database restore: recovery from timeout and loss of connection,
    • Internal messaging system: fix for the notification email of discussion follow ups,
    • date of earlier publishing: fix for a bug in Internet Explorer which blocked its modification,
    • section menu (in the all site page): fix of incomplete section tree in some cases,
    • author information: fix bug in the web site’s URL modification,
    • image filters: fix bug when flattening gif files,
    • fix a bug on the typographical bar,
    • #URL_LOGOUT : corrects &amp; and redirection to the current page (self),
    • #LOGIN_PUBLIC : allows visitors.
  • Improvements:
    • supports JQuery 1.1.4 (the version provided with SPIP is still the 1.1.1) and other related bug fixes,
    • Filter image_aplatir : new third parameter "quality" (85 by default for jpg, number of palette colours for gif et png),
    • passwords now accept the characters ' and \,
    • articles_tous and browser: query optimisations (override MySQL for big sites),
    • new supported file types: csv, mkv, mka, kml et kmz.

Maintenance Version 1.9.2d

SPIP 1.9.2d was released on 27 January, 2008.

This version is a bug-fix update. It is advisable to upgrade to this version which should not have any visible impact for the visitors to your site if you are already using a version 1.9.2 (a,b or c).

The changes are:

For authors and admins:

    • correction of an inconsistency in the managing of the date of attached documents (date/time on creation, but only date thereafter);
    • correction of a bug on the sections menu which hid some of them (bug #1113);
    • avoid JavaScript errors when loading a page and the mouse was moved too quickly;
    • the graphic configuration and site address are no longer overwritten when restoring a backup, as they are linked to the server;
    • the correct display of successive screenshots in the statistics;
    • updated Indonesian translation;
    • correction of a bug on the permissions on modification of sites syndicated by restricted admins;
    • correction of several bugs to do with the permissions on logos;
    • correction of an SQL bug on the section selector which made it unusable on big sites (sections are now sorted {par num titre, titre})
    • correction of a bug which could allow a restricted admin to move a published article to a section of which he/she is not an administrator.

for developers of plugins:

    • $GLOBALS['_INC_PUBLIC'] replaces the constant _INC_PUBLIC.
    • It is incremented in each inclusion for the session tag plugin (particularly its cache handling that corresponds to the mechanism used in the current development version of SPIP)
    • Correction of the cache cleaning process in CRON (it sometimes failed when a bot visited the site)
    • url_de_base() can be used in mes_options.php
    • Fix of a missing inclusion that could crash the function autoriser_voir_dist()
    • recuperer_page() properly takes care of https URLs (If PHP was compiled with the SSL support)

Version de Correction 1.9.2e

This version was released on 13 September 2008 (revision [12624]).

It provides several minor big corrections and technical modifications.

  • regular expressions are now compatible with version 5.2.6 of PHP (This is THE major correction in this version)
  • Correction of highlighting search results for two words or more
  • Correction of indexing in the forums
  • Each message can be individually indexed rather than just the whole thread
  • Correction of a bug in the private space (for multiple keywords separated by commas)

For more details: see the 1.9.2 branch code modifications on trac

Author Mark Published : Updated : 06/08/22

Translations : عربي, català, English, Español, français, italiano