Mettons un logo à l’article traduit

Dans un site multilingue, les rédacteurs/traducteurs sont rarement tous au fait des subtilités "logo et « documents joints ». Si les cas de figures peuvent être très variés pour ce qui concerne les images et documents intégrés au texte, la question du logo peut souvent se résumer à : il faudrait le même logo sur toutes les versions.

C’est du moins le cas que je rencontre le plus souvent.

Il existe, ici-même des contributions et, dans SPIP, un filtre qui permettent de récupérer aisément le logo de l’article d’origine.

Je voudrais ici me pencher sur un cas plusieurs fois rencontré et dans lequel le recours à l’article d’origine ne fournit pas toute la souplesse voulue :
-  l’article d’origine a été introduit par quelqu’un qui ne disposait pas d’un logo
-  un des traducteurs en mettra un
-  récupérons ce logo sur toutes les versions de l’article qui n’en n’ont pas.

Dans « article.html », j’ai quelque part :

[(#LOGO_ARTICLE|fichier|?{'',' '})  <INCLURE{fond=inc/inc-logo-trad}{id_article}> ]
[<span style="float:left">(#LOGO_ARTICLE||image_reduire{120})</span>]
[<p class="#EDIT{surtitre} surtitre">(#SURTITRE)</p>]
<h3 class="#EDIT{titre} entry-title">#TITRE</h1>
[<p class="#EDIT{soustitre} soustitre">(#SOUSTITRE)</p>]

Et inc/inc-logo-trad.html contient :

<BOUCLE_pas_logo(ARTICLES){id_article}>
#SET{lien,#URL_ARTICLE&amp;c=menu}
<BOUCLE_logo_trad(ARTICLES){traduction}{logo}{0,1}>
[<span style="float:left"><a href="#GET{lien}">(#LOGO_ARTICLE||image_reduire{120})</a></span>]
</BOUCLE_logo_trad>
</BOUCLE_pas_logo>

Cela fait le boulot ;-) En attendant de recevoir des tuyaux pour le faire mieux, explications :

-  Cadre 1

  • ligne 1, test de la présence d’un logo : si oui, rien - si non inclure en passant l’id_article
  • ligne 2, affichage classique du logo qui existe, s’il existe.
  • la suite, c’est la dist (?)

-  Cadre 2

  • ligne 1 : créer le contexte avec l’id_article
  • ligne 2 : récupérer l’url de l’article sans logo pour pouvoir pointer dessus, ajout possible d’un paramètre (ici « c »)
  • ligne 3 : sélection de la première traduction article qui dispose d’un logo (j’avais oublié l’existence de {logo} comme critère, bien pratique ici)
  • ligne 4 : l’affichage du logo, ici affublé d’un lien vers l’article qui n’en a pas (utile pour le cas d’un appel depuis une page de rubriques par exemple)

Voilà, voilà. Les boucles, j’aime ça (et les inclure aussi) !

Mises à jour

-  Proposition 1 : sur IRC, on me souffle à l’oreillette que dans l’appel (cadre 1, ligne 1)

[23:46] <cy_altern> [(#LOGO_ARTICLE|fichier|?{'',' '})  <INCLURE{fond=inc/inc-logo-trad}{id_article}> ] fonctionne mais pourquoi pas:
  [(#LOGO_ARTICLE|fichier|sinon)  <INCLURE{fond=inc/inc-logo-trad}{id_article}> ]

En effet... (voir http://www.spip.net/fr_article4313....)

-  Proposition 2 : mon autre oreillette me dit
[23:54] <Real3T> |oui et |non, c'est plus facile à lire Suske  et c'est identique à {' ',”} et {”,' '}

En effet !

Mise à jour après lecture de la doc sur |sinon : Remplacer ligne 1 du cadre 1 par :

 [(#LOGO_ARTICLE|fichier|sinon{#INCLURE{fond=inc/inc-logo-trad}{id_article}})]

D’où : Intégration de la proposition 1 et utilisation de la balise #INCLURE, qui permet la mise en cache dans le squelette appelant. Je n’ai pas besoin que l’inclusion soit recalculée à chaque appel de la page.

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom