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 theclassof 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
|uniquefilter
- #ARRAY
- |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)
- |concat
- 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 ...
- All image_xx filters respect attributes passed as arguments.
They might also change :
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.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&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_tousand 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 error 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 developpment 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 support of ssl)
For more details: see the 1.9.2 branch code modifications on trac

SPIP 1.9.2