R\xE9capitulatif des nouveaut\xE9s pour les sites Indym\xE9dia bas\xE9 sur spip


La solution propos\xE9 est bas\xE9 sur un plugin propre \xE0 indym\xE9dia, accompagn\xE9 de quelques plugins de spip, le tout fonctionnant avec la derni\xE8re version de spip (2.0.10 \xE0 l'heure actuelle). Cette solution a \xE9t\xE9 d\xE9velopp\xE9 de mani\xE8re \xE0 fournir un site "cl\xE9 en main" permettant \xE0 des collectifs sans comp\xE9tences techniques particuli\xE8res de mettre en place leur site facilement. Bien \xE9videmment, ce premier jet n'est pas parfait et \xE9voluera certainement avec le temps.

Fonctionnalit\xE9s


Cette solution apporte de nombreuses fonctionnalit\xE9s tentant de r\xE9pondre aux besoins particulier des sites indymedia. Des choix par d\xE9faut ont \xE9t\xE9 fait, correspondant \xE0 la conception de la publication ouverte du collectif indymedia lille, bien qu'il soit pr\xE9vu d'activer / d\xE9sactiver certaines de ses fonctionnalit\xE9s. Cette solution a pour vocation d'int\xE9grer au fur est \xE0 mesure les sp\xE9cificit\xE9s des diff\xE9rents collectifs (par exemple, paris bloque les commentaires apr\xE8s un d\xE9lai de 5 jours), et de les rendre configurable et activable via l'interface de configuration.

Les choix par d\xE9faut


un "parcours" des contributions : le collectif indym\xE9dia lille ne publie pas imm\xE9diatement dans le fil de presse les contributions. Elle sont d'abord plac\xE9es dans une page "en attente", dans l'attente d'une mod\xE9ration. Les articles de cette page restent visibles. Les contributions sont ensuite soit plac\xE9 dans la page des contribution en d\xE9bat, soit publi\xE9 dans le fil de presse, soit refus\xE9 (page des contributions refus\xE9).

un statut "en d\xE9bat" possible pour les articles : Il nous parait important de distinguer les articles posant un d\xE9bat au collectif des articles en attente, c'est pourquoi une page sp\xE9cifique leur est r\xE9serv\xE9, ainsi qu'un nouveau statut qui viens compl\xE9ter les statuts pr\xE9-existant de spip (en r\xE9daction, propos\xE9, publi\xE9, refus\xE9, poubelle).

un forum des mod\xE9rateurs sous les articles en d\xE9bat : Ce forum n'est ouvert que pour les mod\xE9rateurs. Il leur permet de d\xE9battre entre eux directement sur le site publique. De cette mani\xE8re, l'ensemble du d\xE9bat concernant une contribution est disponible aux visiteurs et \xE0 l'auteur de l'article concern\xE9. Ce forum est en lecture pour les visiteurs (seul les mod\xE9rateurs peuvent y ajouter quelque chose).

une distinction entre les articles et les \xE9v\xE9nements : A l'image de nombreux site indym\xE9dia, nous effectuons une distinction entre les \xE9v\xE9nements, rang\xE9 dans un agenda, et les articles rang\xE9 dans le fil de presse.

la notion de lieu attach\xE9 aux \xE9v\xE9nements : Un \xE9v\xE9nement est souvent rattach\xE9 \xE0 un lieu, c'est pourquoi les utilisateurs ont la possibilit\xE9 de rattacher leur \xE9v\xE9nement \xE0 un lieu (soit d\xE9j\xE0 existant, soit un nouveau lieu). Cela offre la possibilit\xE9 de proposer une page sp\xE9cifique \xE0 un lieu, listant tous les \xE9v\xE9nements \xE0 venir concernant ce lieu. Le m\xEAme m\xE9canisme peut \xE9ventuellement \xEAtre envisager pour les groupes (\xE0 l'image d'indym\xE9dia UK je crois).

Choix d'une pr\xE9sentation sur deux colonnes au lieux de trois : Pour des raisons de clart\xE9, nous avons fait le choix de pr\xE9senter deux colonnes au lieu de trois. En effet, il apparait que la colonne de gauche qui jusqu'\xE0 pr\xE9sent contenait l'agenda, n'est pas suffisamment visible, sans compter la multiplicit\xE9 des liens (liste des indym\xE9dia par exemple) de cette colonne, qui r\xE9duit la compr\xE9hension du visiteur qu'a du site.

Interface avec les listes de diffusion


Un collectif indym\xE9dia dispose d'une ou de plusieurs listes de diffusions, r\xE9serv\xE9 \xE0 des usages particuliers. La liste de mod\xE9ration publique est destin\xE9 aux notification de mod\xE9ration, ainsi qu'aux d\xE9bats qu'engendre la publication d'un article. D'exp\xE9rience, il peut \xEAtre fastidieux pour un mod\xE9rateur/trice de devoir, \xE0 chaque mod\xE9ration, envoyer un mail sur cette liste. Ce squelette automatise donc l'envoi de mails \xE0 la liste de mod\xE9ration, \xE0 partir des informations saisies par le mod\xE9rateur sur le site.

Notification de publication : Une notification de publication est envoy\xE9 sur la liste de mod\xE9ration lorsqu'un article est publi\xE9, ceci afin de pr\xE9venir les mod\xE9rateurs/trices qu'il y a du boulot en attente sur le site.


Notification de mod\xE9ration : Une notification de mod\xE9ration est envoy\xE9 sur la liste de mod\xE9ration \xE0 chaque acte de mod\xE9ration. C'est \xE0 dire :
  • lorsqu'un article est refus\xE9.
  • lorsqu'un article est mis en d\xE9bat.
  • lorsqu'un commentaire de mod\xE9rateur est ajouter sous un article un d\xE9bat.
Alerter le collectif : Un visiteur a la possibilit\xE9 d'alerter le collectif concernant un article via un formulaire. Une notification d'alerte est alors envoy\xE9 sur la liste de mod\xE9ration, comportant le mail et le pseudo de l'utilisateur ainsi que la raison pour laquelle il consid\xE8re que cet article devrait \xEAtre refus\xE9.

Inscription depuis le site : Une interface est pr\xE9vu pour s'inscrire sur les diff\xE9rentes liste de diffusion du collectif \xE0 partir de son site. C'est \xE0 dire qu'il n'est plus n\xE9cessaire de redirig\xE9 l'utilisateur sur un site externe, tout ce fait depuis le site du collectif. De plus cette interface a \xE9t\xE9 pens\xE9e pour conserver le design du site, et simplifier la d\xE9marche.

Interface de publication ouverte


L'interface de publication ouverte a \xE9t\xE9 enti\xE8rement refaite. Elle est maintenant d\xE9coup\xE9e en \xE9tapes bien distincts et "ajaxis\xE9". La navigation entre les diff\xE9rentes \xE9tapes s'effectue par un syst\xE8me d'onglet.

Le contributeur passe donc par les \xE9tapes suivantes :
  • Etape 0 : Lecture d'un avertissement quant \xE0 l'objet de la publication ouverte.
  • Etape 1 : Choix entre r\xE9diger un article ou bien un \xE9v\xE9nement
  • Dans le cas d'un article, l'utilsateur doit aussi choisir sa rubrique (parmi celles choisi par le collectif)
  • Dans le cas d'un \xE9v\xE9nement, l'utilisateur doit choisir la date de l'\xE9v\xE9nement, l'heure de l'\xE9v\xE9nement et le lieu de l'\xE9v\xE9nement (il cr\xE9e le lieu si celui-ci n'existe pas encore)
  • Etape 2 : R\xE9daction, l'utilisateur rentre le titre et le texte de sa contribution, et peux ajouter ses documents, l'utilisateur charge des documents pour les inclure directement dans l'article, ou les laisser dans le porte-document attach\xE9 \xE0 l'article.
  • Etape 3 : Choix des mots-cl\xE9s
  • Etape 4 : pr\xE9-visualisation & publication. L'utilisateur est averti de tous les probl\xE8mes que pr\xE9sente sa contribution (pas de titre, trop de mots-cl\xE9s, pas de texte, etc ...)
Apr\xE8s la publication, l'utilisateur est automatiquement redirig\xE9 vers la page des articles en attente, remis \xE0 jour avec la nouvelle contribution et accompagn\xE9 d'un message indiquant que sa contribution a bien \xE9t\xE9 re\xE7ue.

Interface de mod\xE9ration


Une nouvelle interface de mod\xE9ration a \xE9t\xE9 mise en place dans le but de simplifier au maximum la tache des mod\xE9rateurs/trices. Cette interface est int\xE9gr\xE9 dans le site publique, et s'active lorsqu'un utilisateur se connecte en tant que mod\xE9rateur.

Mod\xE9ration des articles : Il suffit d'ouvrir un article depuis le site publique pour disposer d'une interface de mod\xE9ration propre \xE0 cet article. Cette interface pr\xE9sente les fonctionnalit\xE9s suivante :
  • Ajouter un message dans le forum des mod\xE9rateurs (cas des articles en d\xE9bat)
  • Modifier la rubrique d'une contribution.
  • Publier / mettre en attente / mettre en d\xE9bat /refuser une contribution
  • Modifier les mots-cl\xE9s li\xE9s \xE0 une contribution
  • Modifier la date, l'heure ou le lieu d'un \xE9v\xE9nement
  • Passer les commentaires li\xE9s \xE0 la contribution en mode "mod\xE9ration \xE0 priori"
Pour retrouver tous les articles en attente, il suffit d'aller sur la page "article en attente". Pour retrouver tous les articles en d\xE9bat, il suffit d'aller sur la page "article en d\xE9bat", etc ...

Mod\xE9ration des commentaires : Une page sp\xE9ciale est pr\xE9vue pour les commentaires. Cette page permet la mod\xE9ration "de masse" des commentaires, c'est \xE0 dire qu'elle offre la possibilit\xE9 de s\xE9lectionner plusieurs commentaires pour les cacher ou les montrer. (cela r\xE9duit consid\xE9rablement le temps passer \xE0 mod\xE9rer les commentaire un par un). De plus, il y a maintenant la possibilit\xE9 de "marquer" un commentaire comme \xE9tant le dernier commentaire mod\xE9r\xE9. Cela permet aux mod\xE9rateurs/trices passant derri\xE8re un autre mod\xE9rateur/trice de retrouver facilement quel est le dernier commentaire mod\xE9r\xE9, et \xE9vite ainsi de reprendre la mod\xE9ration \xE0 partir du dernier commentaire cach\xE9.

Mod\xE9ration des lieux : Pour modifier un lieu et lui ajouter des informations (adresse, t\xE9l\xE9phone, email, ville), il suffit d'aller sur la page "liste des lieux" et de cliquer sur "modifier ce lieu", le mod\xE9rateur/trice dispose alors d'un formulaire le permettant soit de modifier les informations, soit de supprimer le lieu.

Recherche


Une interface de recherche tr\xE8s compl\xE8te est disponible. Elle s'appuie sur un plugin spip "recherche avanc\xE9e". Ce plugin permet d'effectuer des recherches sur diff\xE9rents objets en fonction de multiples crit\xE8res. Les r\xE9sultats sont class\xE9 selon leur "score", c'est \xE0 dire selon la pertinence pr\xE9sum\xE9e de la contribution.

Configuration


Le squelette a \xE9t\xE9 pens\xE9 pour \xEAtre configurable facilement via une interface disponible dans la partie priv\xE9e de spip. Cette interface permet de sp\xE9cifier des rubriques et des articles sp\xE9ciaux, qui seront utilis\xE9 pour pr\xE9senter certaines pages. (Par exemple, il est possible de choisir un article contenant la politique \xE9ditoriale du collectif. Cet article sera donc utilis\xE9 pour construire la page sp\xE9cifiant la politique \xE9ditoriale du collectif)

Listes des pages

  • Accueil
  • Page des articles en attente
  • Page des articles en d\xE9bat
  • Page des articles refus\xE9
  • Page listant tous les articles d'une rubrique particuli\xE8re
  • Page listant tous les articles d'une th\xE9matique particuli\xE8re
  • Page de lecture d'un article
  • Page de publication ouverte
  • Page d'inscription aux mailings-list
  • Page de pr\xE9sentation des lieux
  • Page vie du collectif & documentation
  • Page galerie
  • Page de recherche
  • Page agenda
  • Page de mod\xE9ration des commentaires
  • Page "alerter le collectif"
  • Page de modification d'un lieu
  • Page de login
  • Page 404

Technique


Ce squelette est bas\xE9 sur un syst\xE8me de "template" permettant un all\xE9gement du code de chacun des pages. Le but \xE9tant d'\xE9viter au maximum la redondance du code, afin de clarifier et simplifier le travail de maintenance et d'\xE9volution.

Ce squelette est pr\xE9vu pour \xEAtre facilement personnalisable. Il est fourni sous la forme d'un plugin, ce qui permet \xE0 chaque collectif de sur-d\xE9finir dans son squelette les \xE9l\xE9ments qu'il d\xE9sire personnaliser. De plus les \xE9l\xE9ments succeptible d'\xEAtre personnalis\xE9 sont totalement distinct des autres \xE9l\xE9ments, afin d'all\xE9ger et simplifier la t\xE2che de personnalisation (Ce qui correspond \xE0 l'apparence graphique - couleur - et ce qui correspond \xE0 la "forme" - taille des cadre - sont s\xE9par\xE9s, il est donc possible de red\xE9finir que ce qui correspond \xE0 l'apparence graphique, sans devoir toucher \xE0 la forme du squelette.)

Ce qu'il reste \xE0 faire

  • harmoniser les d\xE9finitions (internationalisation), de mani\xE8re \xE0 bien ranger et classer toutes les d\xE9finitions et faciliter le travail de traduction.
  • am\xE9liorer l'interface de configuration.
  • ajouter les particularit\xE9s des autres collectifs.
  • Faire passer un maximum de chose dans le plugin, de mani\xE8re \xE0 all\xE9ger le squelette (celui-ci ne contenant que les sur-d\xE9finition des fichiers propres aux collectifs)
  • nettoyer les styles css d\xE9pr\xE9ci\xE9, mais qui trainent toujours dans le code

Installation

Passer \xE0 spip 2.0.10


Suivre la proc\xE9dure normal tel qu'indiqu\xE9 dans la documentation de spip

Installer les plugins


D\xE9compressez l'archive indymedia_plugin.zip. Cette archive contient tous les plugins necessaire au site indym\xE9dia. Placez le contenu dans le r\xE9pertoire "plugins" de spip (le cr\xE9er s'il n'existe pas)

Configuration


Rendez-vous dans les pages de configuration pr\xE9vue par les plugins.

Choix des rubriques sp\xE9ciales


Exemple de structuration du site par rubrique :
  • /Textes du collectifs/priv\xE9
  • /Textes du collectifs/public
  • /contribution/locale
  • /contribution/non-locale
  • /contribution/analyse
  • /agenda
Ce squelette \xE0 besoin de connaitre TROIS rubriques tr\xE8s important :

  • la rubrique contenant les contributions.
  • la rubrique contenant les \xE9v\xE9nements.
  • la rubrique contenant les textes du collectif.
Il faut donc les choisir dans l'interface de configuration.

La rubrique contribution doit contenir des sous-rubriques. L'exemple ci-dessus montre que la rubrique contribution contient les sous-rubriques "locale", "non-locale", et "analyse". Chacune de ces rubriques sera reprise pour la construction du fil de presse. Pour chacune des rubriques, il est possible de sp\xE9cifier le nombre d'article pr\xE9sent\xE9

Choix des articles sp\xE9ciaux


Certaines partie du site on besoin de connaitre les num\xE9ros d'articles particuli\xE9, comme celui contenant la politique \xE9ditorial du collectif. Indiquez les dans cette section.

Textes par d\xE9faut concernant la publication ouverte

Ces textes sont modifiables via l'interface de configuration. Cela permet au collectif de personnaliser les textes d'aide apparaissant dans le formulaire de publication ouverte.

Modifier l'apparence


Ce squelette \xE0 \xE9t\xE9 pens\xE9 de mani\xE8re \xE0 s\xE9parer totalement l'apparence graphique, de sa structure. De ce fait, il est possible de modifier toutes les options graphiques (couleur de fond, couleur des titre, couleur des cadres, etc ...) de mani\xE8re totalement ind\xE9pendante des options de type structure (taille des colonnes, hauteur des titre, \xE9paisseur des bordures des cadres, etc ...), ce qui devrait simplifier la vie des collectif n'ayant pas de connaissance particuli\xE8re concernant le d\xE9veloppement sous spip.

Ce squelette utilise un syst\xE8me de "template" permettant de conserver tout ce qui concerne la structure du style dans un seul et unique fichier. les pages se contentant d'indiquer au fichier "template" ce qu'il faut afficher dans les diff\xE9rentes zones. La cr\xE9ation de nouvelles pages est donc grandement simplifi\xE9e.

Modifier le style du site


Pour cela il faut modifier la feuile de style "indymedia_style.css" se trouvant dans le r\xE9pertoire css du squelette. Tous les \xE9l\xE9ments y sont document\xE9 de mani\xE8re \xE0 expliquer \xE0 quoi ils font r\xE9f\xE9rence. Sa modification ne devrait donc pas poser de probl\xE8me.

Modifier la structure du site


Pour cela il faut modifier la feuille de style "indymedia_structure.css" se trouvant dans le r\xE9pertoire css du squelette. Comme pr\xE9c\xE9dement, tous les \xE9l\xE9ments sont document\xE9 de mani\xE8re \xE0 retrouver rapidement \xE0 quoi ils correspondent.

Ajouter des pages


Ce squelette utilise un syst\xE8me de template, permettant de conserver une seule d\xE9finition de la structure du site, utilis\xE9 pour toutes les pages.
Ce fichier s'appelle "structure/structure.html". C'est donc obligatoirement par lui que vous passerez pour ajouter de nouvelles pages.

Il contient la d\xE9finition des \xE9l\xE9ments standard du site, c'est \xE0 dire le bandeau, la colonne de droite, la colonne centrale, et le pied de page. Il utilise la feuille de style structure.css pour mettre en page tous ces \xE9l\xE9ments.

De base, un appel direct \xE0 structure fournira un squelette vide. Il faut donc pr\xE9ciser avec quels \xE9l\xE9ments chacune de ces zones sera remplis, cela passe par une s\xE9rie d'option que l'on passe au fichier structure.

Voir par exemple le contenu de la page "article en attente" :

<INCLURE{fond=structure/structure,env}
{titre=Liste des articles en attente}
{navigation=Article en attente}
{description=Cette page pr\xE9sente tous les articles en attente de mod\xE9ration}
{robot=non}
{droite=fil-de-presse}
{centre=articles-en-attente}>

Et c'est tout. Cette page appel la structure et lui demande de g\xE9n\xE9rer une page ayant pour titre "Liste des articles en attente", dont la description sera "Cette page pr\xE9sente tous les articles en attente de mod\xE9ration", et donc les robots seront bannis (pas de r\xE9f\xE9rencement). De plus, deux param\xE8tres sont pr\xE9vus pour indiquer quoi mettre dans la colonne de droite, et quoi mettre dans la colonne centrale. Dans le cas pr\xE9sent, la colonne de droite sera aliment\xE9 avec la "noix" fil-de-presse, et la colonne centrale sera aliment\xE9 avec la "noix articles-en-attente.

Pour cr\xE9er une nouvelle page, il suffit d'ajouter \xE0 la racine de votre squelette un fichier html portant un nom explicite, et contenant uniquement ces quelques lignes.
Il restera apr\xE8s de cr\xE9er les "noix" correspondant \xE0 ce que vous voulez pr\xE9senter. L'appel \xE0 cette page prendra alors la forme suivante : <a href="#URL_PAGE{ma_page}"></a>

Depuis tout \xE0 l'heure je parle de noix, en fait il s'agit de bout de code spip r\xE9pondant chacun \xE0 un besoin pr\xE9cis (par exemple lister tous les articles en attente) et ne s'occupant absolument pas du reste. Elles sont rang\xE9 dans le sous-r\xE9pertoire "noix"

Modifier le fichier template


Si vous d\xE9sirez modifier la pr\xE9sentation g\xE9n\xE9rale du site (pour passer sur une pr\xE9sentation en trois colonnes par exemple), alors il vous faudra modifier le fichier structure.html afin d'y inclure l'appel \xE0 la colonne de gauche. (prenez exemple sur la colonne de droite, logiquement il devrait \xEAtre identique).

Exemple :


<INCLURE{fond=structure/haut,env}
<INCLURE{fond=structure/colonneGauche,env}
<INCLURE{fond=structure/colonneCentre,env}
<INCLURE{fond=structure/colonneDroite,env}
<INCLURE{fond=structure/bas,env}


C'est tout. ce qu'il faut remarquer i\xE7i, c'est le param\xE8tre "env" passer \xE0 chaque appel, cela veux dire que le contexte initiale de l'appel (tous les param\xE8tres) seront pass\xE9 au fichier inclus. Si on reprend l'exemple de la page en attente, il \xE9tait sp\xE9cifi\xE9 en param\xE8tre que nous ne voulions pas de robots d'indexation (robot=non). Ce param\xE8tre est donc compris dans la variable "env", et sera pass\xE9 au fichier structure s'occupant de g\xE9rer ce genre de chose. Si nous appelons le fichier template avec un autre param\xE8tre, comme par exemple "gauche" destin\xE9 \xE0 indiquer ce qu'il faut mettre dans la colonne de gauche, cette information sera dans la variable "env", et sera transmise au futur fichier structure s'occupant de d\xE9crire la colonne de gauche.

Cr\xE9ez ensuite le fichier correspondant \xE0 la nouvelle colonne (copiez le fichier correspondant \xE0 la colonne de droite, puis modifiez ce qu'il faut personnaliser), en prenant soin de nommer le bloc d'une mani\xE8re parlante.

Exemple :

<div id="colonneGauche">
<INCLURE{fond=noix/#ENV*{gauche},env}
</div>


Il ne reste plus qu'\xE0 modifier en cons\xE9quence la feuille de style indymedia_structure.css en fonction de ce que vous voulez obtenir.

Au final, vos pages pourrons appeler le fichier template avec un nouveau param\xE8tre "gauche" permettant d'indiquer ce qu'il faut mettre dans la colonne de gauche.

Exemple :
<pre>
<INCLURE{structure/structure,env}
{titre=Liste des articles en attente}
{description=Cette page pr\xE9sente tous les articles en attente de mod\xE9ration}
{robot=non}
{gauche=liste-des-indymedia}
{centre=articles-en-attente}
{droite=fil-de-presse}>
</pre>

Cr\xE9er les noix


Les noix correspondent au contenu des diff\xE9rents espaces pr\xE9vue par la structure du site. Elles doivent \xEAtre sp\xE9cifier par chacune des pages lors de leur appel au fichier template.

Elles doivent \xEAtre rang\xE9 dans le sous-r\xE9pertoire "noix".

Il ne faut pas oublier de pr\xE9ciser la dur\xE9e du cache.

Cr\xE9er des formulaires


Les formulaires doivent \xEAtre rang\xE9 dans le sous-r\xE9pertoire "formulaires".

-- EdD - 04 Apr 2010
Topic revision: r1 - 04 Apr 2010, EdD
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback