Bricolages pour le site "velovacances"

J’ai commencé à monter le site "velovacances.jack31.org" l’été dernier afin de bloguer sur mon voyage vers la mer noire, et échanger avec mes anciens collègues et mes amis.
Au départ je l’avais fait en spipr-dist : efficace et complet. J’avais fait pas mal de petites modifs. Puis j’ai voulu utiliser html5-alpha qui est plus joli et mets mieux en valeur les photos. Mais html5up-Alpha n’est pas un squelette de blog et forcément les petites adaptations précédentes ne fonctionnaient plus.
Alors j’ai réintégré mes anciennes modifs au fur et à mesure, sans toujours me rappeler de tous les tenants et aboutissants initiaux. Puis à l’usage il m’a fallu faire de nouvelles adaptations alors que ma balade était déjà commencée :) .

Cet article pour documenter et ne pas oublier ce que j’ai fait. Un autre article traite de l’utilisation de GIS dans le site

Multilinguisme

Le choix d’écrire le site en deux langues a été fait au début, à la suite de remarques de collègues qui avait transféré le lien vers mon blog à mes anciens collègues de Hambourg.

plugins

Au départ je traduisais au fur et à mesure les articles dans la même rubrique. J’ai utilisé le plugin "menus de langue avec liens" et j’ai surchargé le plugins menus pour que les langues s’intègrent proprement dans l’ul du menu.
J’ai découvert tardivement le plugin multilang... Ca m’aurait un peu simplifié la tâche. Pour écrire les titres des photos je m’étais fait un petit fichier dans un tableur avec les balises multi pré-renseignées. Je n’en aurais pas eu besoin avec le plugin multilang... d’un autre côté ça me permettait de réutiliser certains titres ^^
J’avais aussi activé le plugin "langue préférée" mais je l’ai désactivé quand j’ai eu les problèmes de pages 404...

Le modèle article_traduction.html

J’ai emprunté au squelette galactic le modèle article_traduction.html qui permet d’afficher les différentes langues d’un article. Super pratique !

Les soucis...

Alors que j’étais en France je n’avais pas remarqué de souci particulier. A partir du moment où j’ai commencé à être à l’étranger j’ai eu des problèmes. J’ai commencé à m’inquiéter vraiment quand dans le même article j’avais des mélanges des deux langues utilisées sur le site.
L’application du critère {lang} a permis de régler ce problème mais alors sont apparues les erreurs 404 : je cherchais à afficher mon article en venant du privé et je n’étais pas dans la bonne langue... C’était souvent la page en français qui était en erreur... mais des fois c’était l’inverse !
Mais ce souci n’est que du privé vers le public la navigation publique fonctionne très bien, d’une langue à l’autre et dans chaque langue.

Forums

J’avais commité juste avant mon départ une micro-correction qui permettait de commencer un forum sur chaque article, en cours de route j’ai ajouté une page forum qui permettait de répondre plus facilement et avec une présentation mieux intégrée (avec le plugin comments). Je n’ai pas fait tout à fait ce que je voulais puisqu’en cliquant sur répondre à partir du back office on avait bien le message auquel on répondait mais pas l’article... ce n’est qu’à la validation du message qu’on revenait sur l’article (avec la 404 habituelle sur la langue).
Ensuite j’ai ajouté sur la page d’accueil une liste des derniers commentaires.

Liste de diffusion

J’ai remplacé l’utilisation de Newsletter par l’usage d’une liste que j’ai créée chez mon hébergeur. J’utilise les plugins abomailman pour gérer l’abonnement à la liste ovh et "ma lettre" pour envoyer, à la demande, une newsletter avec un article (et sa traduction)

Images

Au départ je voulais juste qu’on puisse voir les images sur la carte. Mais vite cliquer sur chaque image n’est pas très pratique, alors j’ai activé l’outil tooltip et du coup pour que ça fonctionne il me fallait un titre sur chaque image.
Pas plus mal parce qu’avoir un titre permet de mieux se rappeler par où on est passé, alors je mets un titre détaillé quand je peux et des fois simplement le nom de la ville (ou "Danube").
Mais voir les images uniquement sur la carte ça restait un peu limité... j’ai lu cette discussion revenue sur le tapis sur IRC sur le rôle du portfolio. Et quelqu’un proposait une solution pour "ne plus utiliser le portfolio et lister tous les documents avec le critère vu=non" : c’est exactement ce qu’il me faut et donc j’ai repris le code du portfolio (de inclure/documents) dans inclure/images et j’y ai enlevé les notions de portfolio. Par la suite j’ai remis l’id="documents_portfolio" afin de faire fonctionner la médiabox sans me casser la tête.

Pagination

J’ai passé pas mal de temps à essayer de faire fonctionner la balise #PAGINATION comme expliqué sur spip.net. En passant sur IRC on m’a expliqué que c’était pour une liste d’articles et pas pour passer d’un article à un autre. (Pourtant dans la rubrique c’est une liste d’articles, mais chaque article est séparé, c’est vrai)
Alors il faut utiliser le critère précédent/suivant avec le plugin du même nom.
Pour rendre la présentation un peu sympa j’ai ajouté les titres en modifiant le fichier inclure/article_precedent_suivant.html

Page sommaire

Le changement le plus important a été d’intégrer sur le modèle des rubriques les deux derniers articles pour permettre de suivre les publications, comme sur un blog.
Mais aussi la liste des forums et puis aussi finalement, de façon basique, le lien vers les pages de synthèse du voyage aller, puis retour.

Champs extra

Afin d’afficher les distances parcourues à chaque étape, cumulées sur le parcours et la date de l’étape qui n’était pas forcément celle de la rédaction de l’article.
J’avais créé 2 champs extras avec 3 affichages dans la page article.

Au début je n’avais pas mis le champ date puis je l’ai rajouté. Je l’ai appelé #DATE_ETAPE parce que ce champ pouvait être différent de la date de rédaction (et effectivement plusieurs fois j’ai publié l’article le lendemain) de l’article (non renseigné par défaut dans le squelette html5up-Alpha).
J’ai eu un peu de mal à ne pas afficher ce champ lorsqu’il était vide, une valeur 0000 apparaissant toujours lorsque le champ n’était pas renseigné. J’ai fini par utiliser cette écriture :

<p class="#EDIT{date_etape}">[(#DATE_ETAPE|affdate_jourcourt|choixsiegal{0000, "", #DATE_ETAPE|affdate_jourcourt})]</p>

Le deuxième champ, c’était le champ #KILOMETRES : indiquer le nombre de kilomètres de l’étape.
Là la difficulté venait du fait qu’apparemment les balises multi au milieu de la condition ça coince... Alors j’ai créé un item de langue... et ça a marché !

[<p class="#EDIT{kilometres}">(#KILOMETRES|oui)<:kilometres_ce_jour:>#KILOMETRES</p>]

Entre-temps j’ai fait un peu plus simple

[<:kilometres_ce_jour:>  <p class="#EDIT{kilometres}">(#KILOMETRES)</p>]

Enfin le troisième affichage c’était le total des kilomètres, il y a peut-être d’autres solutions mais il m’a fallu passer par #SET - #GET et le filtre choixsivide

#SET{kms,#KILOMETRES}
			<BOUCLE_a(ARTICLES){somme kilometres}{lang}>
			[(#GET {kms} |choixsivide{" ",  [<:kilometres_debut:> (#SOMME{kilometres})]})]
			</BOUCLE_a>

Pour le prochain voyage

Je vais mettre à profit les quelques mois qui restent pour essayer d’améliorer tout ça !
Merci pour les conseils et le support que j’ai eu tout le long !