Le site ouaibe de la Caravane Permanente
Abstract:
Pas mal de gens ont passé un bout de temps à réfléchir ensemble sur le site
ouaibe de la Caravane, en 2003. Plus précisément, sur l'articulation entre
la façon dont le site apparaîtra pour les visiteureuses et
comment
qu'on fait, techniquement, pour que ça donne ça.
J'ai ensuite réalisé une maquette de site appliquant les idées issues de ces
réflexions sur http://cp.squat.net ; cette première mouture a été utilisée
lors de la première étape de la caravane, et délaissée ensuite ; l'étape 2007
devrait redonner une nouvelle jeunesse à ce site.
Le présent texte se veut, d'une part, une synthèse de ces discussions
collectives et de ce boulot ; et d'autre part, un état des lieux de ce qui
a déjà été mis en place. Il est donc, pour partie, technique. J'ai néanmoins
essayé d'expliquer clairement tout ce qui ne relève pas du détail technique; si
vous ne comprenez pas un truc, demandez moi de ré-expliquer plus clairement,
sans hésiter.
Il n'en reste pas moins qu'il est bien difficile dans un tel texte de satisfaire
tant les débutantEs en la matière que les spécialistes de la question.
0.1 Historique de ce document
- 2007 06 16: mise à jour suite à l'évolution vers SPIP 1.9.2
- 2004 02 25: mise à jour au vu de la mise en place concrète du
site
- 2003 11 03: fusion de la version initiale et des notes prises
lors de la réalisation de la maquette de site
- 2003 08 23: version initiale (compte-rendu de la première
réunion sur la question)
- le site ouaibe et la Gazette (papier) : quelles relations ?
- SPIP, c'est quoi ?
- transformer ce document en un A5 (type brochure)
Il y a deux types de sites ouaibes : les sites statiques et les
sites dynamiques.
Dans le premier cas (statique), chaque page du site doit être
créée et stockée individuellement sur le serveur, une bonne fois pour
toutes; le contenu (ex: texte) et la forme (ex: 2 colonnes plus un
bandeau en haut) sont donc stockés ensemble; si l'on souhaite changer
la forme (la gueule du site, quoi), il faut aller retoucher chaque
page du site. Pfff. Si l'on veut une page qui donne la liste des 20
dernières niouzes de la Caravane, il faut la faire évoluer à la main à
chaque nouvelle niouze. Galère.
Dans le second cas (dynamique), on dissocie forme et fond: le contenu
est stocké dans une base de données, indépendamment des fichiers qui
décrivent la forme du site; on peut donc changer la gueule de tout le
site en modifiant UN fichier et non 375 fichiers; de plus, si l'on
veut une page qui donne la liste des 20 derniers trucs parus à propos
de la carpothèque, hop, suffit de la programmer une fois, et au fur et
à mesure du temps, le site la recalculera tout seul. Magique.
Évidemment, la seconde solution est préférable. Ça tombe bien, le truc
qu'on a choisi pour faire le site (SPIP - http://spip.net/) est
fait pour ça.
2.1 Plusieurs vues pour les mêmes données
Tout d'abord, l'unité de base du site de la Caravane, pour des raisons
bassement techniques, est l'article; un article, c'est du texte
qui a un titre, unE auteurE, avec, en option, des images, vidéos,
sons, etc.
Quand nous avons commencé à réfléchir à ce site, s'est immédiatement
posée la question: ``doit-on classer/rubriquer les articles par date,
par lieu, ou par type d'activité ?'' ; question sans réponse,
évidemment. Ce dont nous avons besoin, c'est de pouvoir trier et
afficher les articles, au choix, selon n'importe lequel de ces
critères.
Et c'est là que se révèle à nous toute la puissance d'un site ouaibe
dynamique, qui permet ça. Comment ? Ben voilà.
Grosso modo, on stocke tous les articles ensemble, en vrac, dans une
base de données. Pour chacun de ces articles, on donne quelques
précisions: date, lieu, type d'activité, etc. Tout ça, la visiteureuse
ne le voit pas.
Mais ensuite, on crée des pages de programmation qui savent extirper,
de ce tas d'articles en vrac, ceux qui nous intéressent, pour en faire
une zoulie page ouaibe que le visiteureuse verra. Je nommerai
désormais une vue chaque façon de présenter une liste
d'articles: par exemple, une vue par lieu, une vue par date, une vue
par atelier, etc. Vous l'avez maintenant compris, un même article peut
apparaître sur différentes vues: l'article sur le spectacle donné à
Colombey-les-deux-églises le 11 mars 2007 apparaîtra dans 3 vues, par
exemple:
- celle qui liste les activités de la Caravane dans ce charmant
patelin;
- celle qui liste les activités de la Caravane en mars 2007, juste
avant la révolution;
- celle qui liste les spectacles donnés par la Caravane.
Z'avez compris ?
Un autre avantage de procéder ainsi, c'est qu'une fois tout ce bazar
programmé, ça roule tout seul, y'a plus qu'à remplir le site, en
ajoutant des articles via une interface de publication simple -
similaire à celle utilisée sur Indymedia. Puis on voit nos différentes
vues se mettre à jour, comme par magie, à chaque nouvelle parution
d'article. Et comme ça, hop, on peut faire autre chose que de
l'ordinateur, youpi.
Bon, c'est pas tout, maintenant que vous avez compris le principe, hop
hop, du concret. Quelles vues souhaite-t-on ?
Les trois vues de base sont :
- une vue Temps (tri par ordre chronologique inverse);
- une vue Lieux (tri par lieu);
- une vue Thèmes (tri par type d'atelier / structure de la
Caravane / thématique; ex: soudure, anti-psy, infokiosque).
Concrètement, on arrive sur le site, on clique sur ``Où ?'', on arrive
sur une page donnant la liste des lieux/étapes de la Caravane, puis on
clique sur ``Dijon'', et on arrive sur une page donnant la liste des
trucs que la Caravane a faits à Dijon.
Nous avons donc besoin de deux vues corollaires des précédentes :
- une vue Lieu listant les articles relatifs au lieu
choisi;
- une vue Thème listant les articles relatifs au thème
choisi.
On veut aussi pouvoir trier selon d'autres critères, donc on ajoute
une classification supplémentaire, selon le type d'article:
``ponctuel'' (ex: une niouze) ou bien ``intemporel'' (ex: une fiche
pratique). Ce qui nous donne une vue supplémentaire, nommée par la
suite Documents, et rassemblant les trucs ``intemporels''.
Cette classification supplémentaire permet, par exemple, pour les
pages des ateliers, de mettre dans une première colonne les fiches
pratiques, et dans une seconde colonne les niouzes. Histoire de ne pas
avoir à chercher la fiche pratique de la soudure tout en bas d'une
page listant les diverses créations métalliques réalisées sur le
trajet de la Caravane.
Ensuite, on a étudié le cas des articles qui ne rentrent pas dans un
atelier particulier, par exemple les articles parlant de la Caravane
en général. Après réflexion, la solution la plus efficace est d'avoir,
en amont, une classification étanche entre les articles relatifs à des
ateliers particuliers et les articles plus généraux. M'enfin, ça
c'est de la bidouille technique, ça n'aura pas d'incidence sur la
gueule du site; cf. 3.2 pour le détail des choix
techniques en la matière.
On n'a pas eu le temps de réfléchir collectivement à la tronche de
cette page, mais tout de même celui de lister les liens et infos qui
devraient s'y trouver:
- une micro-présentation de la Caravane, avec un lien vers des
textes plus complets;
- des liens directs vers nos différentes vues (``Où est la
Caravane ?'', ``Que fait la Caravane ces temps ci ?'', ``Quelles
activités sur la Caravane ?'', ``Fiches pratiques et autres trucs
intemporels'');
- un lien vers la rubrique ``Gazette'';
- un lien ``Soutenez la Caravane, sortez votre carnet de
chèques!'' ou assimilé;
- une case pour taper un mot à rechercher sur le site;
- un lien vers la liste de matos;
- un lien vers les pages de préparation d'étapes;
- un lien ``Publier'' pour nous autres Caravaneureuses.
Du concret, du concret ! Implémenter signifie construire
une réalité informatique à partir de ce qu'on a modélisé sur le
papier.
Comme expliqué dans le texte Ce qui se cache derrière votre
URL 1,
un site ouaibe est hébergé sur un serveur. Celui de squat.net nous
héberge, et l'adresse du site est : http://cp.squat.net.
3.2 La structure de la base de données
Les articles sont triés selon deux catégories, matérialisées par des
rubriques SPIP :
- les articles relatifs à la Caravane en son ensemble;
- les articles relatifs à un atelier/thème particulier.
On attribue de plus à chaque article, lors de sa publication, quelques
mots-clés classés par groupes :
- un et un seul mot-clé du groupe ``Lieux'', sauf pour les
articles intemporels;
- un mot-clé, au moins, du groupe ``Thèmes'', sauf pour les
articles relatifs à la Caravane dans son ensemble;
- un ou zéro mot-clé du groupe ``Types spéciaux d'articles'',
c'est-à-dire ``Intemporel'' (fiches techniques, etc.) ou non.
De même qu'il est intéressant, comme on l'a vu dans le paragraphe
2.1, de séparer les données des programmes qui les
présentent à nos yeux, il est fort utile de séparer les
squelettes des feuilles de styles. Oula, cékoiça ?
Les squelettes sont, dirons-nous, les programmes qui vont
chercher les informations dans la base de données ; en gros, ils
contiennent des trucs du genre ``Affiche les titres des dix derniers
articles'' ou ``Affiche le menu de navigation'', ces ``ordres'' étant
bien sûr traduits dans le langage de SPIP.
Les feuilles de styles sont les fichiers qui décrivent la forme
que doivent avoir les pages et le texte obtenus ; par exemple ``Les
titres seront en police de 16'' ou ``Le menu de navigation aura un
fond rose et sera placé à gauche de la page''. Le langage employé ici
est celui des CSS (Cascading Style Sheets, qui signifie
``feuille de style'' en anglais).
Séparer ces deux trucs a de nombreux avantages :
- on peut modifier entièrement l'apparence du site en changeant
uniquement ses feuilles de styles ; cf. http://csszengarden.com pour une
petite démonstration;
- le code source des squelettes en est considérablement allégé, ce
qui le rend beaucoup plus lisible;
- le site est compatible avec les outils tels qu'écrans braille et
dictée vocale, pour les non-voyantEs;
- plein d'autres trucs qui ne me reviennent pas en tête là tout de
suite.
Les squelettes sont écrits en XHTML 1.1 Strict mâtiné de langage SPIP
et d'un poil de PHP ; cette décision est uniquement issue de
mon cerveau stalinien. Concrètement, ça a un avantage: ça oblige à
bien séparer squelettes et feuilles de styles.
On stocke ces fichiers, portant l'extension .html, dans le
répertoire squelettes du site, ce qui permet d'utiliser
différents jeux de squelettes. Le squelette en cours d'utilisation est dans le
répertoire squelettes/k. Pour que ce soit possible, il a fallu
modifier le fichier ecrire/mes_options.php.
Son contenu n'a pas encore été discuté collectivement, elle ne
contient donc, pour l'instant, que les éléments suivants:
- le menu de navigation commun à toutes les pages
- un ``newswire'', autrement dit la liste des derniers articles
publiés sur le site
- une micro-intro tirée de la Gazette numéro zéro
Le squelette temps.html liste tous les articles du site par
ordre chronologique inverse.
Le squelette lieux.html liste les lieux (et oui), et donne les liens
vers les pages spécifiques à chaque lieu (http://cp.squat.net/lieuNN.html,
en remplaçant NN par le numéro du mot-clé associé au lieu... car chaque lieu est
un mot-clé).
Le squelette themes.html liste les thèmes, et donne le lien vers la
page spécifique à chaque thème (http://cp.squat.net/themeNN.html, en
remplaçant NN par le numéro du mot-clé associé au thème... car chaque thème est
un mot-clé).
Le squelette lieu.html liste les articles relatifs à un lieu
donné.
Le squelette theme.html liste les articles relatifs à un
thème donné, en séparant les articles "intemporels" des autres (le fil de
news).
Le squelette documents.html liste tous les articles du site
ayant le mot-clé ``intemporel'' (fiches techniques, etc.)
Le squelette karavane.html liste tous les articles relatifs
non à un thème/atelier particulier, mais à la Caravane dans son
ensemble (i.e. les articles de la rubrique 3), en séparant les articles
"intemporels" des autres (le fil de news).
3.4.9 La navigation entre les pages d'une même vue
On peut prévoir que certaines pages sont amenées à grandir ; la vue
chronologique, par exemple, listera très vite un grand nombre
d'articles. Il faut donc la scinder en plusieurs pages : la première
listant, par exemple, les dix articles les plus récents, etc. La fonction de
pagination, apparue dans SPIP 1.9, fait ça toute seule. Elle est d'ores et déjà
utilisée pour la vue chronologique.
Afin de permettre une navigation aisée entre les différentes vues, j'ai créé un
squelette menu-global.html, qui est appelé par tous les
autres squelettes. C'est là dedans qu'il y a le menu qui apparaît, à l'heure où
j'écris, en haut de chaque page du site.
Ces fichiers portent l'extension .css. On les appelle, dans
les squelettes, par leur adresse à partir de la racine du site ; il y
en a quatre :
- squelettes/k/habillage.css;
- squelettes/k/impression.css;
- squelettes/k/spip_style.css;
- squelettes/k/typographie.css.
Je suis parti des feuilles de styles livrées avec SPIP (1.6), et j'ai commencé
par virer tout ce qu'on n'utilisera pas (forums, brèves, plan, résumé...) afin
de simplifier leur compréhension. Puis je les ai modifié - un peu mais pas des
masses en fait - avec pour résultat le site actuel ; ce que j'ai fait est
évidemment améliorable, avis aux bonnes volontés...
On s'est dit que l'outil le plus adapté, pour les trucs censés être
modifiés fréquemment et par de nombreuses personnes différentes, était
le Wiki.
Pour la liste de matos, on a pensé à 3 pages Wikis :
- le matos qu'on a sur la Caravane;
- le matos qu'on recherche;
- le matos qu'on a à notre disposition à tel endroit.
Reste à ce que ``on''2 les mette en
place...
De même, pour ce qui est de la préparation d'étapes de la Caravane, un Wiki
conviendra à merveille.
Ceci dit, à l'usage, il apparaît que chaque groupe organisateur d'une étape
caravane s'est jusque là débrouillé tout seul, avec ou sans wiki.
À réfléchir, collectivement.
Afin que le site soit lisible par le plus grand nombre de personnes possibles,
quels que soient leur navigateur internet, leur handicap éventuel, il est
souhaitable qu'il soit standard, c'est-à-dire que le langage dans lequel
les pages sont écrites respecte une certaine grammaire, un certain vocabulaire,
standardisés par un organisme international nommé W3C
(http://www.w3.org/).
Le site de la Caravane, en l'état, est globalement conforme à ces
standards; néanmoins, le fait est que SPIP génère parfois du code non conforme,
mais bon, c'est déjà pas mal comme ça, hé, ne jouons pas non plus
les ayatollahs.
B. Modifications du code source de SPIP
L'idéal serait de pouvoir se passer de modifier le code de SPIP; en
effet, si l'on modifie le code de SPIP, une future mise à jour de SPIP
écrasera nos modifications et nous aurions à les réintégrer ensuite en
son sein. On essaiera donc de limiter nos modifications au strict
nécessaire.
Le site, dans sa version actuelle, est basé sur SPIP 1.9.2 non modifié.
Rien pour l'instant, restons simples.
Footnotes
- ... URL1
- Darkveggy, Ce qui se cache derrière votre
URL, 2003, http://print.squat.net/docs/drkvg-derriere_url.txt.
- ... ``on''2
- C'est qui, ``on'' ?
intrigeri@boum.org