habemus spipum : SPIP 3.0.6 et SPIP 2.1.20 !

Bonjour, la fumée blanche est enfin apparue, nous l’attendions depuis septembre dernier.

Deux nouvelles versions de SPIP sont donc disponibles pour les branches 3.0 et 2.1, apportant diverses corrections de bug. Nous vous invitons à mettre à jour vos SPIP.

Liste des changements en 3.0.6

(une longue liste en français compilée par marcimat \o/ )

Interface :

-  rétablir les puces sur les forums de l’espace de rédaction (r19923, #2864)
-  corrections des ancres sur redirections Ajax des formulaires CVT sous webkit (r19929)
-  rétablir l’affichage des documents sur l’édition ajax des objets (r19938)
-  permettre d’avoir les champs supplémentaires sur la page  ?exec=infos_perso comme sur la page  ?exec=auteur (r19953)
-  quand le logo n’est pas éditable, et qu’il n’y a ni logo normal ni logo survol déjà présent, il est inutile d’afficher le formulaire (r20018)
-  dans la liste des enfants de rubrique, utiliser les filtres automatiques réellement définis pour les titres (r20032)
-  classe CSS manquante sur la 404 privée (r20061)
-  pétouille CSS quand un picker est dans un fieldset (r20076)
-  faire apparaître le bouton de changement de statut même si il était au départ en display:none et pas seulement en visibility:hidden (r20158)
-  vérifier qu’on est admin pour créer des rubriques à la racine (r20172, #2886)
-  afficher les boutons de création d’auteur pour les admins restreints là où ils manquaient (r20220, #2939)
-  utiliser apercite.fr pour remplacer thumbshots.com qui a sombré... (r20242)
-  mettre à jour l’url sous « Voir le site public » quand on change l’url (r20245)

Puces statut :

-  ajouter un title sur les puces de statut (r20059)
-  si un objet n’est pas éditable, ne pas lui appliquer de changement rapide de statut (r20062)
-  permettre à |puce_statut de supporter aussi les objets qui ne sont pas rangés dans les rubriques (puce de changement rapide) (r19987)

Sélecteur générique et rubrique  :

-  réparer l’ajout rapide du navigateur de rubrique (r19914)
-  amélioration du sélecteur générique (r20034, r20038, r20039, r20041, r20043, 20120, r20123, r20124, r20179, r20190, r20192, r20231)
-  ne pas enregistrer l’historique HTML5 sur le sélecteur ajax (r20034)
-  rendre générique le mini formulaire d’ajout rapide (r20040)

Dateur :

-  coquille dans un texte du dateur (r19958)
-  relancer l’application du dateur sur les champs date après retour AJAX (r20046)
-  attendre que les js du dateur soient chargées pour les lancer ! (r20050)
-  le script de dateur était compacté en HTML au lieu de JS (r20050, #2921)
-  image manquante (r20159)

Prévisu :

-  envoyer systématiquement les boutons d’admin en prévisu (r20106)
-  la prise en compte de la previsu ne se fait plus dans le code généré (accélère la prévisu) (r20107)
-  l’ajout de la banniere previsu se fait dans le pipeline affichage_final, plus propre (r20108)

Traductions :

-  les liens de traductions doivent pouvoir être définis et enlevés même lorsque le menu de langue n’est pas activé (r20152, #2861)
-  quand on écrit une traduction, les auteurs de l’article d’origine ne sont pas associés à la traduction (mais seulement le traducteur) (r20198, #2847)

Traitements d’image :

-  2 pipelines supplémentaires : image_ecrire_tag_preparer et image_ecrire_tag_finir (r19917, r19918)
-  éviter des timestamp compliqués dans l’espace privé (r19948)
-  générer un log de debug au traitement d’une image, pour, lorsqu’une image trop grosse fait planter le site, pouvoir la retrouver plus facilement (r19950)
-  vérifier que l’image temporaire existe bien (créée par GD) avant de faire un getimagesize (r20133)

Récupération de données distantes :

-  avoir les réponses de requêtes HEAD vraiment identiques à GET (r19959)
-  ne pas copier directement le fichier distant à sa destination, sinon un autre processus concurrent peut croire qu’il est présent et le traiter (r20113)
-  ne pas confondre des documents distants avec des documents locaux protégés (r20146, r20169)

Code PHP :

-  quelques notices PHP en moins (r19907)
-  quelques documentations de fonctions au format PHPDoc en plus (r19916, r19928,r20004,r20034,r20037)
-  définir dans la librairie Pclzip comme dossier temporaire le tmp/ de SPIP dont on sait qu’il est toujours accessible en écriture. (r19990)
-  inclusion parfois manquante dans le nettoyage des mails (r20014)
-  un statut « 0 » ne pouvait plus être modifié (r20020, r20021)
-  objet_inserer() accepte un argument $set (r20021)
-  inclusion manquante d’autoriser (r20072, r20073)
-  inclusions inutiles (r20101)
-  éviter des sql_countsel multiples pour le bouton de création de chaque objet enfant (r20100)
-  permettre à un plugin de définir antérieurement la constante _LOG_FILTRE_GRAVITE. (r20212, r20219, #2927).

API d’objets et de liens :

-  objet_inserer() accepte un argument $set (r20021)
-  objet_dupliquer_liens prend 2 arguments optionnels supplémentaires qui permet de lister les types des objets liés à prendre en compte ou à exclure (r20197)
-  cohérence : sur les objets génériques on prend _request(id_auteur) si il est posté pour l’associer à l’objet lors de la creation. Faisons pareil sur les articles (r20241, r20271)

Portages SQL :

-  pas de longueur sur les index en SQLite (r20023)
-  meilleur gestion des clauses DEFAULT en SQLite (r20270)

URLs :

-  généricité du code dans balise/url_ (r19933)
-  coquille sur #URL_TRUC* qui renvoyait vide (r19934)
-  comme les autres #URL_XXX*, #URL_ARTICLE* renvoie une URL sans « & » (r19935)
-  corrections sur generer_info_entite (r20031)
-  décodage des urls : quand on appelle la fonction en dehors de assembler, il faut prendre en compte l’url fournie telle quelle (r20166)

Dates :

-  pouvoir utiliser des déclarations de champs de date qui ne sont pas habituels pour les critères de dates (jour_relatif, age_relatif etc) en utilisant $GLOBALS['table_date'][$table['id_table']] (r19966)
-  le 4e argument $options du #FORMULAIRE_DATER peut être utilisé pour forcer la prise en compte ou non d’une date_redac (r20030)

Compression :

-  correction d’absence de compression CSS lorsque #INSERT_HEAD_CSS n’est pas présent dans un squelette (r20004, r20007, r20069)

RSS :

-  réparer le flux RSS des signatures (r20013)
-  permettre d’attraper la taille d’un media:content dans un flux rss (r20225, #2941)

Gestion des plugins :

-  analyse de paquet.xml : éviter de coller des mots ensemble (r19996)
-  meilleure gestion de _DIR_PLUGINS_SUPPL (r20029)

Sessions :

-  ne pas confondre un fichier temporaire avec un fichier de session (r20033, #2914)

Compilateur :

-  rétablir la prise en compte par le phraseur {n-#ENV{nb},x} (r20049)
-  corriger certains critères de type {!id_mot=...} (r20066, #2729, #2862)
-  amélioration du critère {par x.y} qui ne se débrouillait pas de lui-même pour ajouter la jointure, si elle n’était pas déjà là au moment du calcul du critère. (r20114)
-  permettre à la balise #LESAUTEURS d’être multi objet (r20116, r20187, r20188)
-  autoriser des déclarations de boucles avec des noms de serveur comme pour les critères, tel que boucle_X_DOCUMENTS_dist() où « X » est un nom de connecteur (r20118)
-  corriger #PUBLIE en prévisu (r20121, r20122)
-  la boucle Hiérarchie ne doit pas empêcher de traiter les critères autres que ceux qui la concerne directement (id_x et id_rubrique). (r20269, #2916, #2952)

Tâches Cron :

-  éviter trop de crons concurrents sur les serveurs à fort traffic (r20125, r20126, r20127, r20134)
-  correction de plusieurs bugs sur les tâches cron qui doivent se relancer car non finies (r20135)
-  ne pas relancer un cron automatiquement immédiatement sans tenir compte du retour car cela provoque un appel continu toutes les secondes du génie optimiser qui fait plein de choses en BDD (load issue) (r20160)
-  genie/mail utilise notifications_envoyer_mails() plutôt que directement envoyer_mail() (r20230)

Écran de sécurité :

-  « 80legs » est un bot (r20240)
-  « sys_getloadavg » est peut être inhibée (r19945, #2871)

Autres :

-  éviter de tuer charger_fonction() dans certains cas alors qu’on ne le demandait pas (r19925)
-  ne pas manger les classes CSS du formulaire instituer objet (r19936)
-  prise en compte d’une recherche accentuée si le site n’est pas en UTF-8 (r19946, r19947, #2801)
-  le modèle pagination_precedent_suivant.html accepte 2 arguments : url_precedent et url_suivant permettant de l’utiliser en dehors d’une balise pagination (r19956)
-  lors d’une institution (changement de statut ou déplacement), renseigner l’ancien parent dans les pipelines (r19977)
-  utiliser chercher_filtre pour charger la fonction bouton_action (r19979)
-  lors d’une réparation d’une table, que le sql ait ou non une fonction repair, on appelle en complement maj_tables() qui ajoute les champs éventuellement manquants (r19983)
-  déclaration de pipeline manquante (r20067)
-  gestion de la page d’erreur 404 extensible par pipeline page_indisponible (oubli de report) (r20070)
-  sécurisation des urls redirections en url absolues : accepter non seulement la meta adresse_site, mais aussi l’url de base du hit (r20075)
-  les mails HTML n’étaient pas détectés et affectés du bon Content-Type lorsque le sujet était fourni (r20223)
-  ne pas proposer la base courante dans la liste des bases externes ; faire retourner tous les arguments de l’appel de la fonction analyse_fichier_connection (inclu, donc, le préfixe de table). (r20249)

Brèves

-  autorisations manquantes : il faut qu’une rubrique existe pour pouvoir les créer (r69229)
-  éviter des warning (r70375)

Compresseur

-  correction d’une suppression à tort du retour ligne qui suit les commentaires // (r67734)
-  tolérer que certains commentaires HTML ne soient pas supprimés, s’ils commencent par <!--keepme: (r68367)
-  prendre en charge les directives @import lors de la compression CSS (r69190, r69331, r69332, r69739)
-  PHPDoc (r69190)

Filtres Images

-  correction d’une erreur sur la saturation = 0 (r66992)
-  prise en charge des apple-touch-icon.png dans toutes leurs variantes, calculées à partir du logo du site. (r70268, r70269)

Forums

-  correction sur l’url de notification (r65951)
-  permettre l’extension de la table (r66054, r66056)
-  éviter un bug lors de la soumission ajax du formulaire (jQuery pas defini dans l’iframe du post) (r66091)
-  réparer l’alerte qui se declenchait a tort sous safari après post du message, et qui ne se déclenchait pas du tout sous Chrome (r66093)
-  réparer generer_url_forum_dist() qui ne renvoyait rien (r67198)
-  cliquer l’adresse mail dans l’en-tête d’un message de forum lance le courrielleur. (r70293, #2917)
-  améliorer l’information d’auteur d’un message de forum (r70298, r70413)
-  contrôle des forums privés : même type de cartouche pour les nouveaux objets éditoriaux que celui des objets historiques (r70416, r70466, r70469)
-  espaces insécables sur chaîne de langue (r70587)

Mediabox

-  sprite sur le thème fancybox (r69774)

Médias

-  pouvoir ajouter une liste de documents de la médiathèque par désignation d’un intervalle (r66239)
-  post publication des articles : les documents ne prenaient pas les bons statut et date associés (r66464, #2849)
-  correction d’une inclusion (r66948)
-  correction de l’index id_objet qui était sur la colonne id_version, ajout deux index sur id_version et objet (r66950)
-  ajouts de modes de fusions pour |image_masque : ecran, superposer, lumiere_dure, teinte, saturation, valeur (r67225)
-  permettre à un squelette d’ignorer le mode d’une image sans forker les modèles, en passant mode_force=image ou mode_force=document (r67632)
-  permettre les raccourcis |left, |center et |right même si le document est déjà vu (r67801)
-  permettre <embX> même sur les documents dont la taille est 0 (r67801)
-  lorsqu’un zip ne contient aucun fichier uploadable (type acceptable) alors il faut simplement le charger en zip joint plutot qu’annoncer une erreur erronée (r68096)
-  après déplacement du fichier dans IMG/, on regarde si on peut récupérer une taille du fichier, si on ne peut pas, c’est qu’il fait 0 octet et donc corrompu (ou problématique et inutile) (r68123)
-  prendre en compte les tailles maximales d’upload définies (r68412, r68452, #2920)
-  pouvoir utiliser les modèles de documents, insertion, etc, avec des documents dont le mode n’est pas connu (r69196)
-  déclarer le pipeline medias_documents_visibles (r69827)
-  clauses DEFAULT souvent manquantes sur les champs extension, credits et statut de la base, car elles n’étaient pas initialement renseignées. On les remet d’applomb (r69871)
-  prise en charge des documents au format MBTiles (r69920)

Mots

-  coquilles dans les déclaration de chaîne de langue (r66776)
-  ajout d’un index sur id_groupe (r67761)
-  les groupes de mots n’ont pas à être tous affichés dans le formulaire pour associer des mots : c’est en fonction de leur configuration et du statut de l’auteur (r70329, #2926)
-  appliquer une marge à l’icône « Modifier ce groupe de mots » uniquement sur exec=mots (r70540)

Organiseur

-  afficher l’agenda interne dans l’espace public affiche bien ses propres rendez-vous si on est connecté(r68383)
-  séparer l’algorithme de conversion des messages vers le format fullcalendar dans des fonctions spécifiques pour permettre des réutilisations par des plugins (r68389)

Révisions

-  débug en moins (r65911, #2857)
-  ajouter un DEFAULT sur ’permanent’ et ’champs’ pour SQLite (r67235)

Sites

-  autorisations manquantes : il faut qu’une rubrique existe pour pouvoir les créer (r69229, r69232)
-  prendre en compte les documents attachés qu’ils soient via enclosure, media:content ou les deux (r70317, #2941)

Squelettes dist

-  coquilles sur le formulaire de recherche (r66277)
-  retours de message du formulaire d’inscription : quand c’est une erreur afficher un message d’erreur. Quand c’est un succès, fournir en retour l’id_auteur inscrit pour les pipelines/plugins (r68472)
-  éviter un warning php sur le formulaire pour écrire à un auteur (r68491)
-  HTML du formulaire de recherche : le input.texte et le input.sumit n’ont pas d’espace entre eux comme sur la 2.1 (r68636)
-  ne pas appeler la page 404 depuis les squelettes car cela empêche un plugin d’utiliser une 401 en cas de contenu interdit par exemple. Corrolairement on deplace le calcul des messages d’erreur par defaut dans la page 404 (r68800)
-  passer dorénavant objet/id_objet au modèle lesauteurs.html (r69240)
-  les robots ne doivent pas indexer plugins-dist ! (r69404)
-  utiliser le modeles/mail_oubli.html pour composer l’email de rappel de mot de passe, plutot que le composer en dur dans le code PHP (r70608)

Statistiques

-  pouvoir annuler le filtre id_article sur la page des stats (r65914, #2856)
-  la colonne de droite des stats ne doit pas exclure les éléments trouvés précédemment (r66318)

SVP

-  correction du non affichage du slogan après l’activation d’un plugin : inclusion manquante (r67424, #2895)
-  correction de la détermination des branches SPIP lorsque la borne max contient des étoiles. (r67489)
-  « Sélectionner les mises à jour » passe le bouton d’action sur mise à jour automatiquement (évite que le bouton désactive les plugins par défaut) (r68017)
-  coquille sur _DIR_PLUGINS_SUPPL (r68051)
-  _DIR_PLUGINS_SUPPL est géré comme un répertoire normal de plugins (r68052)
-  ajout d’une autorisation « ajouter plugins » (permet d’activer ou non le téléchargement sur une mutualisation) (r68054)
-  donner un nom à un index pour PostGreSQL (r69430)
-  message d’erreur correct lorsque c’est le XML (décrivant les plugins qu’on n’arrive pas à télécharger) qui est erronné et non sa syntaxe (r70068)

Textwheel

-  ne pas confondre un simple « < » avec un raccourci ressource en embarquant par erreur la balise html qui suit (r65851, r65852, #2854)
-  éviter un segmentation fault dans le traitement des listes (r68671, r68672, #2531)
-  versionner les wheels cachées pour éviter un bug en cas de modification sensible lors d’un upgrade (r69009)
-  correction d’une substitution sur &deg (r70155)
-  tableau : mieux lire les nombres (r70244, r70279)

URL étendues

-  ne jamais appeler en direct generer_url_document_dist mais passer par un charger_fonction approprié (r67345)
-  correction en url arbo où on pouvait se retrouver à renvoyer la sous rubrique au lieu de la racine en decodant le premier tronçon de l’URL (r70024)

Liste des changements en 2.1.20 :

(une liste en français compilée par esj \o/ )

Une quarantaine de commit sont passés sur la branche 2.1
depuis la sortie de 2.1.19 en Septembre. Ils corrigent des bugs
mineurs. Les principaux changements concernent :

  • la récupération des fichiers distants ou protégés
  • les arguments des chaînes de langues dans les squelettes
  • la présentation des résultats de recherche
  • le repérage des colonnes numériques dans le raccourci des tableaux
  • plusieurs cas d’invalidité XHTML (voire XML), et WCAG
  • les bases externes pas toujours prises en compte
  • l’import partiel avec fusion qui ne traitait pas certains cas et n’était pas extensible
  • le validateur en boucle qui ne savait pas traiter les squelettes du répertoire prive.

Télécharger la version SPIP 2.1.20 :

N’hésitez pas à utiliser les différents moyens mis à disposition par la communauté pour obtenir de l’aide lors de cette mise à jour :

-  Liste spip-user : http://listes.rezo.net/mailman/listinfo/spip
-  Forum : http://forum.spip.net
-  IRC : http://irc.spip.net

Nous rappelons à toutes et tous que le meilleur moyen pour signaler des failles, ou des suspicions de failles est d’envoyer un email à « spip-team@rezo.net ».

Comment mettre à jour vers SPIP 3.0.6 ?

  1. par spip_loader.php : si vous avez déjà installé spip_loader, rendez-vous à l’adresse http://VOTRE_SITE/spip_loader.php pour installer la dernière version de SPIP.
    Attention cependant : lisez bien les instructions ici : http://www.spip.net/fr_download#spip_loader pour ne pas être surpris par un passage non voulu de SPIP2 à SPIP3.
  2. par copie des fichiers : SPIP 3.0.6 est disponible à l’adresse http://files.spip.org/spip/stable/spip-3.0.zip
  3. par SVN : si vous êtes dans la branche 3 faites simplement un « svn up » svn ://trac.rezo.net/spip/branches/spip-3.0
    la version 3.0.6 est aussi disponible sous la branche : svn ://trac.rezo.net/spip/branches/spip-3-stable et sous le tag svn ://trac.rezo.net/spip/tags/spip-3.0.6

Pour, la version SPIP 2.1.20, vous pouvez la trouver dans les archives : http://files.spip.org/spip/archives/

Comment être tenu au courant de ces annonces ?
Le plus simplement du monde en s’inscrivant sur la mailing liste http://listes.rezo.net/mailman/listinfo/spip-ann .

Bien sûr les réseaux sociaux ne sont pas en reste :
-  Twitter : http://twitter.com/spip
-  Facebook : http://www.facebook.com/spip.net
-  Seenthis : http://seenthis.net/people/spip

Discussion

5 discussions

  • 1

    Après MaJ de ma version 2.1 de SPIP (qui a fonctionné) j’ai voulu effectuer avec spip_loader la MàJ vers la version 3.0.8 et là c’est un peu la cata :

    Fatal error : Cannot redeclare lire_config() (previously declared in /usr/home/space/www/node1-5/gl-ouv/3/0/3001040249322343/web/ouvaton.org/rigas.ouvaton.org/html/plugins/cfg/inc/cfg_config.php:188) in /usr/home/space/www/node1-5/gl-ouv/3/0/3001040249322343/web/ouvaton.org/rigas.ouvaton.org/html/ecrire/inc/config.php on line 127

    Y’a donc une erreur qqpart.
    Je remets l’ancienne version ?

    Rigas
    rigas.ouvaton.org/

    • J’ai vidé le répertoire racine entièrement et réinstallé le loader.... rechargement effectué correctement. Il faut par contre avoir le nom de la base de données. Grâce à Ouvaton j’avais cela facilement accessible.
      Rigas

    Répondre à ce message

  • 5
    Alexandre

    Bonjour,
    Petit bug ?
    J’ai effectué la mise a jour branche 2. Et je ne peux plus desactivé ou activer des plugins (le bouton a disparu) et impossible de mettre a jour le couteau suisse par exemple.

    • Je disais là… vider le cache peut être ?

    • c’est sans doute le bug du chargement de gadget.js (j’ai ouvert un ticket http://core.spip.org/issues/2966) qui provoque une erreur js qui empêche les autres js de l’espace privé de bien fonctionner.

      essaye en corrigeant ecrire/inc/presentation.php par

      	  http_script('', 'gadgets.js') .
      	  http_script($inline . $fin);

      par

      	  http_script('', 'gadgets.js') ;
      	  //http_script($inline . $fin);
    • Alexandre

      Bonjour,

      Merci pour votre réponse, j’ai corrigé le fichier comme ci-dessus, mais le problème est toujour présent.
      J’ai exactement le même soucis que VideoMAN qui a posté plus bas.

      J’ai ajouter un screen pour le bouton.

      Merci !

    • j’ai de nouveau vérifié. un simple vidage de cache suffit (bien s’assurer de vider aussi son cache navigateur le cas échéant). Oublier donc mon code précédant.

      Si l’erreur persiste, peux tu installer firebug et voir si tu ne vois un erreur javascript dans la console (il s’agit peut être d’un plugin qui pose problème) ;

    • Alexandre

      Merci pour ces informations, j’ai trouvé le problème, c’est le plugin « Bandeau » qui en été a l’orignie, je l’ai mis à jours, et tout est rentré dans l’ordre.

    Répondre à ce message

  • 1

    J’ai trouvé un petit bug qui peut être gênant sur la version 3.0.6 de SPIP. Dans le script ecrire\base\objets.php, il a été rajouté une nouvelle fonction lister_tables_spip(). Celle-ci fait appel à la fonction sql_alltable(). J’ai eu le cas de plantages pour des navigateurs autres que Firefox (?) sur une page avec forum, avec un message « call to undefined function sql_alltable ». Je précise que j’avais désactivé tous les plugins (spip 3.0.6 seul). Le plantage ne se produit pas si on désactive le cache, mais ce n’est pas une solution...

    Pour corriger, comme la fonction sql_alltable() est définie dans le script abstract_sql.php, j’ai ajouté au début du script objets.php la ligne suivante :

    include_spip(’base/abstract_sql’) ;

    Voilà, si ça peut être utile à d’autres...

    Répondre à ce message

  • VideoMAN

    Pareil depuis la mise à jour vers 2.1.20 je constate :

    1/ mise à jour des plugins via couteau suisse ne fonctionne plus,
    2/ l’installation de plugins ne fonctionne pas (le zip du plugin est bien téléchargé et décompressé et mis dans le répertoire auto) mais bizzarement spip ne trouve plus le plugin...
    3/ le seul moyen d’activer des plugins est de les installer manuellement (même dans le répertoire auto), bizzarre
    3/ le plugin jquery ui ne s’installe pas et ne fonctionne pas
    4/ vider le cache spip ne résout pas le problème

    Répondre à ce message

  • Vider le cache peut être ?

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom