[spip-dev] Retour d'expérience site Spip (multilingue, admins restreints, plusieurs sites une même BD...)

Bonjour,

Voici un petit retour d'expérience d'un utilisateur de Spip. Je ne
suis pas développeur, mais j'utilise Spip depuis sa création, avant
même sa publication en fait. J'ai du faire une quarantaine de site
avec, dont quelques-uns sont particulièrement gros. C'est le cas du
site du Réseau Voltaire (www.voltairenet.org) sur lequel je vous donne
un petit retour d'expérience.

Ce site utilise Spip depuis 2002.

* * *
SPIP SUPPORTE LA CHARGE D'UN GROS SITE

Le site contient aujoud'hui près de 50 000 articles publiés dans 10
langues, dont environ 14 000 pour chacune des trois langues suivantes
: français, espagnol et arabe. Il accueillais récemment, d'après
Webalizer, un peu plus de 1 400 000 visites mensuelles (entre 45 000
et 50 000 par jour).

J'ai entendu dire par des webmasters qui hésitaient entre Drupal et
Spip que ce dernier n'était pas conçu pour de gros sites. C'est n'est
évidemment pas vrai. Voltairenet.org est assez gros et fonctionne
plutôt bien (sur serveur dédié).

Le serveur que nous utilisons est cependant actuellement saturé, d'où
de grosses lenteurs. Nous le transférons en ce moment sur un nouveau
serveur. Pour limiter la lourdeur, nous avons malheureusement dû
désactiver les statistiques de Spip. A noter que la consultation est
assez bien répartie sur les 24 heures du fait des provenances
différentes des visiteurs. Le site est en effet consulté depuis
plusieurs continents, en particulier l'Amérique (environ 4 à 7 heures
de moins qu'à Paris) et non seulement depuis la France ou l'Europe. Il
est aussi vu dans des pays où le vendredi est chômé et non le
dimanche. Cela fait qu'il n'y a pas de gros pic de consultation et
donc pas de forte charge à un moment particulier de la semaine ou de
la journée.

* * *
LE TRAVAIL QUOTIDIEN DANS L'ESPACE PRIVE

Au fur et à mesure des versions, le travail quotidien dans l'interface
privée est devenu plus fluide et facile. Je crois qu'il y a eu deux
changements qui ont été importants pour cela. D'une part, le menu
déroulant affichant la liste de toutes les rubriques qui permet de
naviguer dans le site depuis n'importe quelle page sans avoir besoin
de nombreux clics (sur une rubrique, un sous-rubrique, etc.). D'autre
part tous les ajouts d'ajax permettant de ne pas recharger une page
pour mettre à jour un élément. A noter néanmoins que les pages sont
lourdes à charger et qu'on ne peut pas aller vite ou ouvrir trop de
fenêtres à la fois. Pour travailler spécialement sur un article, c'est
très bien, pour mettre en ligne plusieurs articles à la fois, c'est
beaucoup moins pratique.

Un regret cependant : il y a beaucoup d'administrateurs sur notre site
et ils doivent associer des auteurs aux articles qu'ils publient.
Erreur très courante, créer un nouvel auteur sans vérifier qu'il
existe déjà. On se retrouve alors avec un auteur entré plusieurs fois
et avec plusieurs pages persos affichant à chaque fois un seul article
(alors qu'il devrait y avoir une seule page pour cette auteur avec
tous ses articles). C'est un vrai casse-tête lorsqu'il faut supprimer
les auteurs en doublons et associer les articles à un seul auteur. Une
fonction simple à ajouter et qui serait très pratique : lors de la
création d'un article, obliger à chercher parmi les auteurs existants
avant de proposer le bouton "Créer un nouvel auteur" (s'il n'y a pas
de résultat ou si le résultat de la recherche n'est pas satisfaisant -
car il est parfois très éloigné de la demande...).

Sur ce site, les articles dans chaque langue sont gérés par un
administrateur qui va valider ceux proposés à la publication. Or la
page "A suivre" affiche tous les articles quelle que soit la langue.
S'il était possible de n'afficher les articles proposés à la
publication que dans une langue, ce serait bien pratique. Cet usage
concerne, je crois, tous les gros sites multilingue. Sur un petit site
multilingue, un administrateur/webmaster gère souvent toutes les
langues, mais dès que le site se développe un peu ce n'est plus le
cas.

* * *
LE CHAMP <MULTI> ET LES FICHIERS DE LANGUES

Le site est donc multilingue. Nous utilisons le principe d'une
(sous-)rubrique par langue (et non des articles dans plusieurs langues
dans une même rubrique). Lorsque le multilinguisme est apparu sur
Spip, cela nous a permis de très gros développement. Auparavant, nous
avions installé plusieurs sites différentes, avec des noms de domaines
différents et des bases de données différentes pour chaque langue.
C'était évidemment terriblement lourd et impossible à gérer sur le
long terme. En 2005, nous avons fusionné les différentes bases de
données pour mettre en place un seul site multilingue (en UTF-8 car
nous avons des langues comme l'arabe et le russe).

Il y a deux éléments importants que nous utilisons et qui ne sont, à
mon sens, pas vraiment aboutis pour le multilinguisme.
- D'une part, les champs <multi> qui nous servent pour tous les
éléments transversaux ne pouvant pas être traduits à part (les
mots-clés, les auteurs et les rubriques).
- D'autre part, les fichiers de langues (local_fr.php...).

Le champ <multi> est vraiment indispensable pour un site multilingue.
Mais il n'est pas conçu selon la logique de Spip, c'est-à-dire quelque
chose de puissant mais simple d'utilisation pour des non
informaticiens. Cela ressemble à un hack et n'est pas facile à
utiliser pour les journalistes qui travaillent régulièrement dans
l'espace privé. Pour eux, il serait beaucoup plus simple d'avoir une
case avec le champ dans la langue dont ils s'occupent.

Le fichier de langues est aussi particulièrement important pour un
site multilingue. Mais sa mise à jour et ses traductions ne sont pas
réalisables par des non-informaticiens. Lorsque ce fichier ne contient
que quelques lignes, ce n'est pas bien grave. Mais dès qu'il commence
à être un peu long, cela devient problématique. Il existe bien l'outil
Trad-lang (pas évident à installer). Mais rien n'est prévu dans Spip
(ni même en plugin). Pourquoi ne pas intégrer cet outil dans Spip ? Il
serait mille fois plus pratique de mettre à jour les fichiers de
langues depuis la configuration du site dans l'espace privé.

D'après mon expérience de site multilingue, ces deux éléments ne sont
pas aboutis. Je regarde avec plaisir plein les nouvelles
fonctionnalités de Spip, mais je regrette que le multilinguisme ne
soit pas totalement finalisé.

* * *
LES ADMINISTRATEURS RESTREINTS

Le site utilise aussi de manière extensive les administrateurs
restreints. Sans cette fonction, il ne serait pas ce qu'il est. Son
apparition dans Spip nous a en effet permis de travailler avec des
équipes différentes dans plusieurs parties du monde. Le site
fonctionne sous la forme d'un réseau de presse où chaque publication
dispose d'une rubrique/secteur qu'elle gère elle-même. Il était donc
indispensable qu'elle ne puisse pas intervenir dans les autres
publications, comme cela aurait été le cas lorsqu'il n'y avait pas le
statut d'admin restreint.

Il y a aujourd'hui 26 publications (journaux ou agences de presse) sur
le site, dont environ la moitié est très active. Le statut
d'admin-restreint est donc pour nous particulièrement important (mille
mercis à la personne qui l'a introduit !). Je crois qu'il a été
envisagé un temps de le supprimer. Ce qui aurait été pour nous une
grave erreur. C'est au contraire une chose qu'il faudrait à mon sens
développer. Par défaut, les admins restreint de Spip ne peuvent
notamment pas créer d'auteur. Ce qui est un manque pour l'usage
quotidien d'un journal (dans notre cas, l'administrateur d'une
publication ne peut pas, par défaut, mettre les auteurs de sa
publication). Il existe un plugin permettant de gérer plus finement
les accès des admins/auteurs. Mais je regrette cependant que cela ne
soit pas pris en compte dans la version de base.

Il me semble que la question d'une gestion plus fine des droits ne se
pose pas seulement dans le cadre de site éditoriaux classiques comme
le nôtre, mais aussi de sites "web 2.0" avec une participation plus
active des visiteurs. Je suppose que si Spip veut s'ouvrir à un usage
plus participatif "web 2.0", il faudra bien intégrer cette question
dans la base même du logiciel.

* * *
PLUSIEURS SITES SUR UNE MÊME BASE DE DONNÉES

La base de données de Spip est utilisée par le site Voltairenet.org et
des secteurs sont affichés sur les sites de différentes publications.
Par exemple, l'agence Altercom a sa rubrique dans le site mutualisé et
son propre site (http://www.voltairenet.org/rubrique120081.html et
http://www.altercom.org) ou encore la UTPBA
(http://www.voltairenet.org/rubrique120448.html et
http://www.utpba.net).

On a mis cela en place assez rapidement (en 2004). Ce n'était pas
documenté, mais finalement très simple à faire (il suffisait de placer
les fichiers de Spip en FTP et de mettre le même fichier de connexion
à la base de données pour tous les sites, sans faire d'installation
particulière - il y avait aussi quelques réglages qui ont été
simplifiés par la suite pour les chemins des documents et des images
placés dans le dossier IMG du site central). Pour les mises à jours
c'est un peu de temps, évidemment. J'ai suivis l'annonce "une seule
installation de Spip pour plusieurs sites". Mais cela est resté au
stade de l'annonce et la contribution, dans Spip-contrib, a plus
embrouillé que facilité les choses. J'utilise donc toujours plusieurs
installations de Spip.

* * *
RETOUR SUR UN AUTRE SITE PLUS AXÉ SUR LA PARTICIPATION DES VISITEURS

Je travaille actuellement sur un autre site qui n'a plus seulement un
mode de fonctionnement éditorial mais fait intervenir les visiteurs
(genre "web 2.0"). Dans ce cadre, je rencontre vite les limites de
Spip. Dans l'absolu, les éléments sont là pour faire intervenir les
visiteurs. Dans la pratique, on n'évite pas les plugins, fonctions,
hacks et autres bidouilles.

Les ennuis commencent avec les formulaires d'inscriptions/connexion.
Ils fonctionnent bien, mais ne sont pas conçus pour les différents
usages qui se présentent sur les nouveaux sites. Le principe de
l'inscription en recevant le mot de passe par email est éloigné des
habitudes actuelles. Il n'est pas possible de changer simplement son
mot de passe (il faut cliquer sur "Mot de passe oublié ?" et l'on
reçoit un email indiquant une adresse où le faire). Rien n'est prévu
par défaut pour modifier ses informations personnelles (au minimum son
pseudo, son login et donc son mot de passe). Et il n'est pas possible
d'ajouter des informations plus complètes sans passer par un plugin.
C'est pourtant un cas qui va se présenter de plus en plus.

Le formulaire de connexion se met automatiquement dans le forum si
l'on met le formulaire pour rédiger un message sur la page. Or on peut
avoir d'autres éléments -comme le plugin notation- qui nécessitent
aussi une identification. On a alors besoin de pouvoir jouer plus
finement avec ce formulaire de connexion (l'afficher sous forme de
thickbox par exemple ou bien avec un petit déplié en jQuery). On
pourrait vouloir afficher côte à côte le formulaire de connexion et
celui d'inscription. Tout cela, même si c'est réalisable, n'est pas
évident à faire en l'état.

Je me réjouis de voir se préparer une version 2.0 de Spip. Mais je
regrette un peu qu'elle n'intègre pas la problématique des sites "web
2.0" autour de la participation des visiteurs.

* * *
DEUX ATOUTS DE SPIP PAS TOUJOURS PERÇUS

Je pense que, comme la plupart des utilisateurs, j'apprécie
particulièrement la logique de Spip qui est un outil très puissant ET
très facile d'utilisation pour les non informaticiens. Il n'y a pas de
"champs", d'"item" et autre jargon rebutant, mais des mots simples
comme "article" ou "rubrique". Chaque élément est placé logiquement,
encastré les uns dans les autres. Par exemple, on ne doit pas aller
dans une partie du site pour mettre des documents puis sélectionner
les articles auxquels ils sont liés. Graphiquement, ergonomiquement,
l'espace privé est facile d'accès. C'est ce qui fait la force de Spip.
(Mais pas toujours de ses plugins.)

Mais il y a aussi deux choses qui me paraissent importantes : le
travail autour de la typographie et les possibilités offertes par les
filtres graphiques.

L'application automatique de quelques règles typographiques a été mise
en place dès la création de Spip et c'est vraiment une bonne chose.
Cela participe à la qualité des sites que l'on peut réaliser avec
Spip. Il serait encore possible de développer ces filtres qui
s'appliquent tant au texte qu'aux dates (par exemple, je réalise
actuellement sur un agenda où je n'affiche pas "09:00" mais "9h" pour
un public d'humains et non de machines). J'ai vu le plugin d'Arnaud
pour faire des césures automatiques. Pour les graphistes qui viennent
du papier et regrettent certaines limites du web, c'est absolument
génial ! Au lieu d'extraire du noyau ce type de filtres, les intégrer
permettrait de mettre l'accent sur la qualité typographique de Spip et
serait vraiment un atout.

Un autre atout de Spip : les filtres graphiques. Avec les filtres
d'images-typos, les graphistes peuvent enfin mettre choisir la
typographie (au minimum pour les titres). Ils peuvent aussi
homogénéiser les images entrées par les nombreux auteurs et donner du
cachet à leur site. Cela permet d'élever Spip bien au dessus de tous
les logiciels conçus dans le seul univers informatique. Allier la
puissance du logiciel avec sa capacité à faire des sites graphiquement
époustouflants est une chose très importante et, je crois, à
valoriser.

A mes yeux, la qualité de Spip dans les domaines typographique et
graphique en fait un outil hors du commun.

* * *

Voilà... Donc mon retour d'expérience...

Merci à vous !

Raphaël

Merci Raphaël,

Pour info, c'est moi qui avait demandé il y a quelques temps à Raphaël de nous faire un retour d'expérience sur son utilisation de SPIP, vu qu'il gère un gros site (en termes de volume d'informations, de trafic et de flux éditorial) avec une pratique éditoriale intensive.

ARNO*

Extra, ca ferait peut etre un bon sujet pour la gazette spip.

Je mets en copie les redacteurs de tous grades.

BoOz

Raphaël wrote:

Raphaël a écrit :

Voici un petit retour d'expérience d'un utilisateur de Spip.

Merci Raphaël pour ce retour précis et clair. Tes remarques sont très intéressantes.

Je laisserais le soin aux spécialistes du multilinguisme, du "sélecteur générique" (pour les auteurs) ou du Web 2.0 de répondre sur ces points.

Les remarques que tu offres sur les atouts de SPIP (intégration cohérente des éléments qui sont humainement qualifiés "article","rubrique") ou encore les géniaux filtres graphiques d'arno* sont effectivement 2 forces peu/pas assez mises en valeur. Je ne partage pas entièrement ton point de vue sur les graphismes ou l'ergonomie de l'interface privée ; pouvoir ajouter un auteur ou un document directement depuis un article est une chose excellente, mais dans certaines parties j'ai le sentiment de me perdre de plus en plus, particulièrement dans les paramètres de configurations où je ne retrouve jamais facilement l'option que je cherche. Je pense que SPIP 2.0 ayant ajouté un grand nombre d'option, cela n'arrange pas ce point.

J'ajoute un point aussi sur l'intégration ou non de fonctions dans SPIP. Je crois que nous essayons, dans la mesure du possible, d'extraire du 'core' de SPIP des fonctions qui ne sont pas *nécessaires* à son propre fonctionnement, pour les intégrer dans des plugins. Sous SPIP 2.0, par exemple, l'indexation ou les champs extras sont passés en plugin. Il semble que plus l'on extrait de choses du core, et plus celui-ci en retour, devient extensible (plus générique), et plus facile à mettre à jour, à debuguer.

Le problème me semble-t-il n'est pas *qu'est-ce qui doit rentrer dans le core*, mais comment faire pour que ce que l'on en sorte ou ce que l'on aimerait y mettre puisse s'y intégrer facilement par un webmaster (sans pour autant être dans SPIP par défaut). Cela revient à 2 évolutions possibles :
- modifier l'interface de gestion des plugins et des librairies pour faciliter la recherche, le téléchargement et l'installation de plugins, en proposant une liste de plugins stables avec un descriptif clair. Nous avons déjà beaucoup discuté de cela, et c'est un point qui devrait s'améliorer au fil des versions de SPIP.
- proposer à l'installation d'installer automatiquement certains plugins, ou encore de fournir des versions de SPIP avec des plugins pré-installés...

Dernier point, ton retour d'expérience étant très enrichissant pour tout le monde, peut être pourrais-tu proposer un article pour la Gazette de SPIP (http://mag.spip.net/) ?

....

Merci ce long témoigne intéressant et encourageant.

Je rapproche deux passages:

il y a beaucoup d'administrateurs sur notre site
et ils doivent associer des auteurs aux articles qu'ils publient.
Erreur très courante, créer un nouvel auteur sans vérifier qu'il
existe déjà. On se retrouve alors avec un auteur entré plusieurs fois
et avec plusieurs pages persos affichant à chaque fois un seul article
(alors qu'il devrait y avoir une seule page pour cette auteur avec
tous ses articles). C'est un vrai casse-tête lorsqu'il faut supprimer
les auteurs en doublons et associer les articles à un seul auteur. Une
fonction simple à ajouter et qui serait très pratique : lors de la
création d'un article, obliger à chercher parmi les auteurs existants
avant de proposer le bouton "Créer un nouvel auteur"

et

les admins restreint de Spip ne peuvent
notamment pas créer d'auteur. Ce qui est un manque pour l'usage
quotidien d'un journal (dans notre cas, l'administrateur d'une
publication ne peut pas, par défaut, mettre les auteurs de sa
publication).

Si on donnait ce droit aux admin restreints, le casse-tête ci-dessus serait encore pire.

Cela dit, tu m'a fait découvrir quelque chose:

http://trac.rezo.net/trac/spip/ticket/1416

Committo,Ergo:Sum

Le serveur que nous utilisons est cependant actuellement saturé, d'où
de grosses lenteurs.

Il serait intéressant de voir si l'ensemble des optimisations de SPIP
2 se voit réellement en prod.

A noter néanmoins que les pages sont
lourdes à charger et qu'on ne peut pas aller vite ou ouvrir trop de
fenêtres à la fois. Pour travailler spécialement sur un article, c'est
très bien, pour mettre en ligne plusieurs articles à la fois, c'est
beaucoup moins pratique.

Oui je suis entièrement d'accord avec toi sur ce point ; là encore
SPIP 2 apporte peut-être un plus : s'il est plus chargé visuellement,
il est plus léger en termes de code (nombre de div etc). Mais on
pourrait concevoir un plugin qui allège drastiquement la chose. Il
existe aussi un mode "très simplifié", qui vaut peut-être d'être testé
(ecrire/?set_disp=4)

Un regret cependant : il y a beaucoup d'administrateurs sur notre site
et ils doivent associer des auteurs aux articles qu'ils publient.
Erreur très courante, créer un nouvel auteur sans vérifier qu'il
existe déjà. On se retrouve alors avec un auteur entré plusieurs fois
et avec plusieurs pages persos affichant à chaque fois un seul article
(alors qu'il devrait y avoir une seule page pour cette auteur avec
tous ses articles). C'est un vrai casse-tête lorsqu'il faut supprimer
les auteurs en doublons et associer les articles à un seul auteur. Une
fonction simple à ajouter et qui serait très pratique : lors de la
création d'un article, obliger à chercher parmi les auteurs existants
avant de proposer le bouton "Créer un nouvel auteur" (s'il n'y a pas
de résultat ou si le résultat de la recherche n'est pas satisfaisant -
car il est parfois très éloigné de la demande...).

Peux-tu faire un ticket à ce propos (pour SPIP 2.1) ?

Voilà... Donc mon retour d'expérience...

Merci d'en avir pris le temps ; c'est extrêmement utile.

-- Fil

Suite au problème pointé par Arnaud sur l'analyse syntaxique des expression <multi>...</multi>
je reviens sur cette partie de ton mail:

Le champ <multi> est vraiment indispensable pour un site multilingue.
Mais il n'est pas conçu selon la logique de Spip, c'est-à-dire quelque
chose de puissant mais simple d'utilisation pour des non
informaticiens. Cela ressemble à un hack et n'est pas facile à
utiliser pour les journalistes qui travaillent régulièrement dans
l'espace privé. Pour eux, il serait beaucoup plus simple d'avoir une
case avec le champ dans la langue dont ils s'occupent.

Est-ce que tu pourrais préciser ta pensée ?
Je n'ai pas d'expérience de sites multilingues, mais j'ai toujours trouvé cette construction bizarre:
on écrit en dur dans les squelettes ou la BD 2 ou 3 traductions, et si un jour on veut en rajouter une il faut tout revisiter, ça me parait pas bon. J'aurais plutot vu un filtre sur une chaine de langue:

<:machaine|multi:>

le filtre multi voulant dire "traduire cette chaine dans la langue du contexte", évidemment en utilisant les fichiers de langues.

Est-ce que ça aiderait de ton point de vue ?

Committo,Ergo:Sum

Les chaînes de langues ne sont pas utilisables dans l'espace privé car elles vont à l'encontre même du gestionnaire de contenu par une BDD : on se retrouve à devoir gérer le contenu dans des fichiers php, accessibles uniquement par le webmestre.

Les champs multi sont en revanche un échappatoire effectivement bien rebutants du point de vue de l'interface.
Renato avec élaboré une solution purement js consistant à decouper le multi en une chaine de chaque langue, et avoir un bouton permettant de choisir la langue que l'on saisissait dans le champ. Le multi etait alors refabriqué à la volée lors du submit.

Je pense qu'il faudrait réflechir à quelque chose de cet ordre, mais peut-être avec une prise en charge plus importante du mécanisme cote serveur même (découpage du champ en plusieurs inputs côté serveur, un seul visible à la fois, passage de l'un à l'autre avec un bouton de langue & js, reconstruction du multi côté serveur) ?

Cédric

Il est déjà ouvert, mais il faut le compléter:

http://trac.rezo.net/trac/spip/ticket/1416

Committo,Ergo:Sum

cedric wrote:

peut-être avec une prise en charge plus importante du mécanisme cote serveur même (découpage du champ en plusieurs inputs côté serveur, un seul visible à la fois, passage de l'un à l'autre avec un bouton de langue & js, reconstruction du multi côté serveur) ?

Bonjour,

Cela aiderait. Je me retrouve avec des <multi> monstres dans le champ TITRE de bcp d'articles. Ils sont difficiles à éditer.

A part cela il y a la difficulté des droits : si on veut que les traducteurs traduisent ces <multi> directement, il faut leur donner les permissions pour la rubrique, ce que souvent on veut pas faire (pour éviter des erreurs).

A cause de ces deux contraintes, actuellement on envoie les traductions des titres par email à des traducteurs qui répondent de la même façon.

Je pensais un moment à faire des titres <:Mon Titre:> avec le plugin Blocs multilingues (toutmulti) qui permet l'usage des chaînes de langue dans l'interface privée. Mais à ce moment-là les titres ne sont plus visibles pour le moteur de recherche. Et cela est essentiel.

Pour moi c'est un des deux points faibles de notre multilinguisme. L'autre étant le manque de liens de traduction entre rubriques.

(Excuse ma présence réduite pendant cette période : juillet-août c'est un temps où on n'est pas en vacance ici :wink:

Paolo