Principe

Les articles Spip de la rubrique Événements du site ont des champs supplémentaires qui permettent le transfert automatique vers l'agenda du libre. Outre des champs techniques précis comme la date, les heures, l'adresse, l'AdL a deux exigences qui diffèrent de la façon dont sont affichés les événements directement sur le site Spip : le titre sur l'AdL ne doit pas contenir d'information sur la date et la description ne doit pas contenir d'informations sur le lieu. Les champs supplémentaires permettent de gérer ces exigences.

Une fois publié, un événement peut être récupéré dans le format XML demandé par l'AdL en allant à l'adresse : https://www.parinux.org/spip.php?page=agendadulibre&id_article=XXX où XXX est le numéro de l'article. Il faut ensuite traiter ce format XML avec le script Python fournit par l'AdL ici : https://www.agendadulibre.org/adl-submit.py

Description des champs supplémentaires

Les champs sont dans l'ordre :

1) Événement : cette liste déroulante comprend les événements habituels de Parinux, le choix d'une valeur dans cette liste fixe deux choses :

La modification de cette liste est décrite plus loin.

Si l'entrée « Autre » est sélectionnée dans la liste, un champ « Titre de l'événement » apparait, ce sera le titre envoyé à l'AdL

2) Date et heure de début (l'heure doit être saisie avec deux points : 18:00 et non 18h00)

3) Date de fin (l'heure doit être saisie avec deux points : 23:30 et non 23h30)

4) Lieu : liste déroulante qui propose les lieux habituels de rendez-vous.

Si l'entrée « Autre » est sélectionnée dans la liste, les champs « Nom du lieu », « Adresse » et « Ville » apparaissent

5) Mots-clés supplémentaires : le mot-clé parinux est indiqué automatiquement, le choix d'un événement dans la première liste déroulante rajoute d'autres mots-clés par défaut ; ce champ permet d'en indiquer d'autres

6) Description de l'événement : ce champ doit contenir le copié-collé du texte de l'article nettoyé des informations de lieux, si ce champ est vide, c'est le texte de l'article qui est envoyé et qui subira les foudres de la modération de l'AdL

Dispositif technique dans Spip

Les champs supplémentaires ont été définis à l'aide du plugin Champs Extras accessible via Configuration → Champs Extras. Tous les champs ont été limités au secteur n°4 (la rubrique des événements). Certains champs sont également disponibles dans la branche n°15 (la rubrique Meta/Textes par défaut) pour permettre d'indiquer certaines informations.

La rubrique Meta/Textes par défaut comprend deux sous-rubriques : Événements et Lieux, les articles de ces rubriques définissent les valeurs associées aux événements et lieux des listes déroulantes.

Comment rajouter des entrées dans les listes déroulantes ?

Cela se fait en deux étapes :

1) dans le plugin Champs Extras, on édite le champ correspondant. Les entrées de la liste sont définies dans « Liste des choix possibles ». Une entrée se présente sous la forme Identifiant|Libellé (exemple : psl|Premier Samedi du Libre), l'identifiant est important car il va être utilisé pour récupérer les informations complémentaires

2) dans la rubrique Meta/Texte par défaut/Événements ou Meta/Texte par défaut/Lieux, on crée un nouvel article. Le champ Sur-titre est utilisé pour indiquer l'identifiant défini au point 1) (« psl » dans l'exemple), le champ Titre indique le titre envoyé à l'AdL. (« Premier Samedi du Libre).

Dans le cas d'un événement, on utilise le champ « Mots-clés supplémentaires » pour indiquer les mots-clés qui seront automatiquement ajoutés à l'événement.

Dans le cas d'un lieu, il faut dans la liste déroulante « Lieux », choisir l'entrée Autre pour faire apparaitre les champs Nom, adresse et ville et les remplir avec les informations du lieu.

Procédure de transmission à l'AdL

Pour l'instant, pas de bouton sur l'interface Spip ni de transmission automatique :-(

Il faut télécharger le script Python (https://www.agendadulibre.org/adl-submit.py) et le lancer depuis son ordinateur.

La procédure est la suivante :

1) Noter le numéro de l'article Spip

2) Récupérer l'événement au format XML à l'adresse : https://www.parinux.org/spip.php?page=agendadulibre&id_article=XXX (en remplaçant XXX par le numéro de l'article). Dans l'exemple suivant, on utilise wget et on enregistre le résultat dans le fichier spip.php.xml

wget -O spip.php.xml 'https://www.parinux.org/spip.php?page=agendadulibre&id_article=369'

3) Lancer le script avec le fichier en argument (on suppose qu'il est placé dans le même répertoire que le script)

python3 ./adl-submit.py --file spip.php.xml