Vendredi 1er avril 2005 : [SPIP 1.8] est téléchargeable à l’adresse www.spip.net/spip-dev/DISTRIB/.
Cette nouvelle version de SPIP constitue l’aboutissement de plus d’une année de travail (la version 1.7 date en effet de janvier 2004), et il est impossible d’en lister ici toutes les nouveautés de façon exhaustive.
Les plus grands efforts ont été faits, malgré des transformations importantes (visibles et invisibles) de tous les composants du programme, pour que la mise à jour d’un site sous n’importe quelle version ancienne de SPIP se déroule sans (trop de) difficultés.
En cas de problème de mise à jour, n’hésitez pas toutefois à demander de l’aide sur la liste spip@rezo.net, ou à consulter le nouveau site de forums de la communauté SPIP, à l’adresse http://forum.spip.org/.
L’espace privé
La transformation la plus spectaculaire est certainement celle de l’espace privé. Ce dernier a bénéficié d’une refonte graphique et ergonomique complète, permettant de publier plus vite et de naviguer plus aisément.
Un article de la documentation détaille les évolutions ergonomiques introduites dans cette version de SPIP.
Outils d’aide à la publication
Plusieurs outils d’aide à la publication ont fait leur apparition :
Le correcteur orthographique
Une fois un article écrit, on peut corriger les fautes d’orthographe grâce à un serveur externe de correction.
Une note à ce propos : le correcteur d’orthographe n’étant pas installé « en local », les mots à vérifier sont envoyés (dans le désordre) à des « serveurs d’orthographe » développés par le SPIP Lab’ et mis à votre disposition par divers membres de la communauté des utilisateurs de SPIP. Afin d’éviter d’ouvrir une brèche de « confidentialité », il est demandé aux webmestres qui le désirent d’activer expressément cette fonctionnalité sur leur site.
La prévisualisation
Une fois un article proposé à la publication, chacun (administrateur ou rédacteur, selon le réglage du site) peut le prévisualiser avec le squelette du site. Ainsi, on peut vérifier le bon affichage final de l’article sans devoir le « publier » puis le « dépublier ».
L’historique des modifications
Pour faciliter le suivi éditorial et l’écriture collaborative, [SPIP 1.8] introduit l’historique des modifications (également développé par SPIP-Lab). On peut ainsi obtenir une liste des derniers articles édités, et voir les modifications faites entre différentes versions d’un article.
Le portfolio
[SPIP 1.8] introduit une nouvelle mise en page pour les documents associés à un article. Tous les documents associés à un article — qui ne se trouvent pas déjà dans le texte — sont affichés dans un portfolio en dessous de l’article.
Depuis ce portfolio, on peut facilement éditer les titre et description d’un document. On peut aussi — si les bonnes librairies graphiques sont installées et configurées sur le serveur — faire tourner les images de 90 ou 180 degrés.
Ce portfolio est complété par la possibilité d’associer plusieurs documents à un article, en une seule fois. On peut :
- soit mettre tous les documents à associer à un article dans un sous-répertoire de
ecrire/upload/
; - soit associer une archive zip à l’article. On aura alors le choix de la décompresser et d’associer les documents qu’elle contient à l’article.
Un article de la documentation précise l’utilisation des outils de traitement d’images.
Espace public
Emplacement des fichiers squelettes
Les squelettes par défaut (anciennement nommés « article-dist.html ») livrés avec [SPIP 1.8] ne sont plus la racine du site, mais dans un sous-répertoire dist/
; ceci en accord avec un début de réorganisation des fichiers de SPIP, qui permet de placer les squelettes personnalisés dans le répertoire squelettes/
, et plus seulement à la racine du site (le réglage éventuel de la variable $dossier_squelettes
est toujours accepté).
Nouveau compilateur de squelettes
Innovation moins spectaculaire, mais sans aucun doute aussi importante que tout ce qui précède, [SPIP 1.8] introduit un « compilateur de squelettes ». Initialement présenté sur le site SPIP Contrib’, ce compilateur a permis, après des mois de travail acharné, d’obtenir une réécriture complète du système qui permet à SPIP d’interpréter le langage de boucles, de balises, de filtres et de critères.
Les avantages directs de cette réécriture ne sont pas forcément évidents au premier abord. L’important (outre le dépassement de certaines contraintes de programmation qui commençaient à peser lourd, et l’amélioration générale du code) est qu’elle permet d’introduire relativement facilement de nouvelles
<BOUCLES()>
, de nouveaux{critères}
et de nouvelles#BALISES
par simple ajout de fonctions dans le fichier mes_fonctions.php3 — à l’instar des|filtres
des versions précédentes de SPIP.Un bon exemple est la contrib Portrait ou Paysage ? publiée sur SPIP Contrib’, qui offre trois nouveaux critères de tris des images :
{portrait}
,{paysage}
et{carre}
.Ce nouveau modèle devrait ouvrir le développement de SPIP à une frénésie de contributions, déjà bourgeonnante. Si vous ajoutez de votre côté de nouvelles fonctionnalités à SPIP, n’hésitez pas à en faire profiter toute la communauté !
Au passage, notons que l’on peut désormais :
- intégrer une boucle dans le code optionnel avant d’une autre boucle (entre <B_articles>
et <BOUCLE_articles(ARTICLES){critères...}>
).
- Les balises peuvent être « imbriquées » les unes dans les autres, par exemple :
[ [(#SURTITRE)] (#LOGO_ARTICLE)]
- De même, on peut mettre des <INCLURE()>
dans les
parties optionnelles d’une balise :[<INCLURE(debut.php3)>(#SURTITRE) ]
- On peut accéder sans programmation supplémentaire, dans les squelettes, à n’importe quel champ d’une table à travers la balise #NOM_DU_CHAMP
- la syntaxe #_nom:TEXTE
permet d’accéder à la balise #TEXTE
de la boucle englobante nommée _nom
. On peut ainsi accéder à des balises de boucles englobantes dont le nom serait ambigu dans le contexte de la boucle actuelle (typiquement, #TITRE
et #_rubrique:TITRE
).
- On peut utiliser une balise dans l’évaluation d’un critère :
{titre = #TITRE}
- En définissant de nouvelles boucles, on peut accéder à des tables situées dans d’autres bases de données.
Un débogueur accompagne ce compilateur :
- d’une part, le webmestre voit s’afficher des messages d’erreur en cas de problème de construction de ses squelettes ;
- d’autre part, en remplaçant dans l’URl de recalcul de la page le code var_mode=recalcul
par var_mode=debug
, le webmestre accède à un mode de visualisation qui expose précisément le code PHP et MySQL produit par le compilateur à partir des squelettes. Un outil certes difficile de prime abord, mais précieux pour celles et ceux qui souhaitent comprendre en détail le fonctionnement de telle ou telle balise — et notamment quand il s’agit d’en construire de nouvelles.
Traductions
[SPIP 1.8] bénéficie aussi de l’important travail de sa toujours croissante communauté de traducteurs. Il est désormais disponible dans les 33 langues suivantes, avec souvent une documentation complète (les nouvelles venues sont signalées en gras) :
code | langue | trad. |
---|---|---|
ar | العربية | arabe |
bg | български | bulgare |
ca | català | catalan |
cpf | Kréol réyoné | créole réunionnais |
cpf_hat | Kreyòl ayisyen | haïtien |
da | dansk | danois |
de | Deutsch | allemand |
en | English | anglais |
eo | Esperanto | esperanto |
es | Español | espagnol |
fa | فارسى | farsi |
fon | fongbè | fongbé |
fr | français | français |
gl | galego | galicien |
hu | magyar | hongrois |
it | italiano | italien |
ja | 日本語 | japonais |
lb | Lëtzebuergesch | luxembourgeois |
nl | Nederlands | néérlandais |
pl | polski | polonais |
pt | Português | portugais |
pt_br | Português do Brasil | brésilien |
ro | română | roumain |
tr | Türkçe | turc [SPIP 1.8.1] |
vi | Tiếng Việt | vietnamien |
zh | 中文 | chinois |
et toujours les 7 variétés d’occitan : òc auvernhat, òc gascon, òc lemosin, òc lengadocian, òc niçard (en deux parfums), òc provençau, òc vivaroaupenc !
Les traducteurs et apprentis-traducteurs sont les bienvenus, pour toutes les langues de la Terre. Il y a de la place pour tout le monde. Faites circuler l’information et n’hésitez pas à « embaucher » vos amis ! La page de référence des traductions est toujours www.spip.net/rubrique4.html ; contact par email, sur la liste spip-trad@rezo.net
Autres nouveautés
De nouveaux raccourcis
Quelques nouveaux raccourcis font leur apparition :
- on peut maintenant insérer du code LaTEX dans un article grâce à la balise <math>
. Ce code sera traité par un serveur externe pour le transformer en une image qui sera intégrée au texte.
Par exemple, le texte suivant :
<math>la valeur de $x$ est $\sqrt{\frac{y^{2}}{z^{2}}}$</math>
s’affichera sous la forme :
la valeur de $x$ est $\sqrt{\frac{y^{2}}{z^{2}}}$
- le raccourci --
sera remplacé par un semi-quadratin —.
Nouvelles balises, critères et filtres
Quelques nouveaux filtres, critères et balises sont listés dans la documentation, accompagnés de la mention [SPIP 1.8].
Signalons par exemple, pour les amateurs de présentation à la façon « blog », le filtre |unique
qui assure qu’un élément récurrent (une date par exemple) n’est affiché qu’une fois ; ou encore le critère {id_article IN 1,2,3}
qui affiche les articles 1,2 puis 3 dans cet ordre.
Compatibilité
PHP 4.0.8, PHP 5. La version minimale supportée est désormais la 4.0.8 avec la librairie preg installée. [SPIP 1.8] est compatible avec PHP 5. La compatibilité avec PHP 3 est en revanche abandonnée.
Note : Pour des raisons « historiques », les fichiers de la distribution officielle continuent à se nommer xxx.php3 ; ce schéma de nommage disparaîtra dans la prochaine version de SPIP, au profit des xxx.php. Une version php de [SPIP 1.8] est toutefois disponible au téléchargement.
MySQL 3, 4.1.x Aucun problème de compatibilité n’a été relevé avec MySQL jusqu’aux versions 4.1.x. Si toutefois vous rencontrez un problème avec MySQL 4.1, merci de le signaler sur la liste de développement, spip-dev@rezo.net
Librairies graphiques. [SPIP 1.8] supporte la génération de vignettes avec NetPBM qui est facilement installable par ftp (voir http://gallery.menalto.com/modules.... chez les hebergeurs où il n’est pas déjà présent), mais aussi GD1, GD2, et Imagick (en module php, ou en ligne de commande sous le nom « convert »).
« W3C. » Le moteur de raccourcis fait son possible pour être conforme aux recommandations du W3C en matière de codage du HTML. Toutefois cela n’est pas parfait dans toutes les situations, notamment lorsque les utilisateurs entrent des textes comportant des balises complexes ou du code HTML.
Note : Pour parfaire les résultats [SPIP 1.8.1] introduit un mode « tidy », qui permet d’assurer que toutes les pages du site sont « valides XHTML1.0 » ; ce mode fonctionne déjà sur www.spip.net, même s’il n’est pas totalement stabilisé. Pour plus d’informations voir article 3070.
Sans oublier :
- Un nouveau module de gestion d’URL est intégré : il s’agit du mode « urls propres », qui permet de passer de l’adresse
http://monsite/article.php3?id_article=17
à quelque chose qui ressemble àhttp://monsite/titre_de_l_article
;
- Les forums sont indexés dans le moteur de recherche. Cette indexation n’est pas individuelle, mais par fil de discussion (toutes les réponses à partir du « pied » d’un thread) ; la variable
id_thread
et les balises#ID_THREAD
et#URL_FORUM
font leur apparition.
- La boucle
(HIERARCHIE)
est traitée de façon plus souple : on peut donc faire{inverse}, {par hasard}, {n-2,1}, {par titre}
, etc.
- le système de cache gère un quota d’espace disque occupé sur le serveur (réglé par défaut sur 5 Mo) ;
- l’insertion de documents est maintenant gérée par des
<div>
et des feuilles de style ;
- le raccourci
{{ }}
est maintenant transformé en<strong>
;
- la syndication accepte les flux aux formats Atom 0.3, RSS 0.91, RSS 1.0 et RSS 2.0 ; les corrections faites en amont sur le site syndiqué sont reprises par SPIP quand il intègre les flux, et les champs
<modified>
et<lastBuildDate>
modifient désormais la date des articles syndiqués ; pour sa part, la syndication de flux « javascript » est abandonnée (mais avait-elle jamais été utilisée ?) ;
- les fichiers de localisation peuvent être placés dans le même répertoire que les squelettes ;
- le fichier ecrire/lang/perso.php3 disparaît, il est remplacé par les fichiers local_xx.php3 que l’on peut placer dans le répertoire des squelettes. xx spécifie un code de langue, ce fichier aura alors priorité sur les autres modules de localisation de la même langue. Le fichier local.php3, s’il existe, est inclus en dernier lieu et permet tous les hacks imaginables.
- on peut suivre l’activité de SPIP dans ses fichiers logs :
ecrire/data/spip.log
etecrire/data/mysql.log
- L’aide en ligne n’est plus livrée en standard, elle fonctionne en client/serveur, avec téléchargement automatique depuis le site spip.net.
- Enfin, last but not least, l’Agenda de l’espace privé a été entièrement revu.
* * *
[SPIP 1.8.1]
Introduite le 15 avril 2005, [SPIP 1.8.1] règle les quelques soucis d’installation qui se sont fait jour après la sortie de la version 1.8. Elle apporte en plus :
- le mode « tidy » (voir ci-dessus) ;
- un nouveau fichier htaccess.txt
pour la gestion des URLs personnalisées (voir Utiliser des URLs personnalisées) ;
- une révision de l’aide en ligne ;
- une mise à jour du module LDAP
Dernier point à noter, la balise #PARAMETRES_FORUM
a été revue. Il n’est en effet plus besoin désormais de passer l’adresse de retour dans les paramètres de forum, car, par défaut, SPIP redirige désormais le visiteur qui vient de poster un message vers l’adresse #URL_FORUM de ce message. Si le résultat ne vous convient pas, vous pouvez récupérer l’ancien fonctionnement en passant l’adresse de retour en argument de la balise, sous la forme [(#PARAMETRES_FORUM{#SELF})]
Au passage, ce nouvel argument « page de retour » qu’on peut désormais passer à la balise permet de faire des redirections vers une page de votre choix, par exemple[(#PARAMETRES_FORUM{message_recu.php?id_article=#ID_ARTICLE})]
si vous souhaitez afficher un texte particulier après l’envoi du message.
(Ce qui peut être pertinent pour des forums modérés a priori.)
Téléchargement
Comme d’habitude le téléchargement de SPIP se fait depuis www.spip.net/spip-dev/DISTRIB/. La mise à jour s’effectue de la manière classique, voir Effectuer une mise à jour. Les sites installés à l’aide de spip_loader
peuvent être mis à jour automatiquement.