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&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.
Discussions par date d’activité
5 discussions
Funciona perfetamente con la modificación indicada. Es preciso mantener la línea [(#LOGO_ARTICLE)] para que el artículo original muestre también logo. Gracias por la aportación
Répondre à ce message
Bonjour et merci pour cette contrib qui répond tout à fait à ce que je cherchais !
Je me dis que dans le même esprit, ça doit être adaptable pour les mots clés. Mais là, je me casse les dents en ce beau samedi ensoleillé...
Quelqu’un-e aurait une piste ?
Ben
Répondre à ce message
Ma petite solution à moi, en mélangeant cette contribution et ses commentaires.
Un fichier inc-logo_trad :
Un fichier inc-logo_origin :
Le principe : si un article n’a pas de logo, il prend celui d’une traduction (à commencer par l’origine de traduction). Si aucun n’en a, il prend le logo de la rubrique.
Une fois les deux fichiers inc créés, il suffit de définir l’image avec la ligne
et de remplacer le ou les
#LOGO_ARTICLE_RUBRIQUE
par#GET{monimage}
Exemple :
Attention : contrairement à ce que dit poupougnac,
#GET{monimage}
ne fonctionne pas exactement comme#LOGO_ARTICLE
. Certes, le filtreimage_reduire
fonctionne (cool !) mais pas un filtre commeright
ou#URL_ARTICLE
. il faut donc encadrer de balises html adéquates (du genre<div style="float:right;">…</div>
ou<a href="#URL_ARTICLE">…</a>
Je ne sais pas quels filtres fonctionnent ou non (ni pourquoi), à chacun de tester.
Good luck !
Tiens, quelles sont les balises de SPIP-Contrib pour avoir le code avec coloration syntaxique ? Apparemment, ce n’est pas
c’est
Enlever les espaces dans les balises cadre et /cadre :-) Elles sont interprétées sinon.
Répondre à ce message
la boucle/parade trouvée pour afficher le logo de l’article de référence dans un carrousel animé est la suivante :
Merci pour ce retour !
Répondre à ce message
Bonjour, ton article est pertinent. La solution de la balise #LOGO_ORIGINE_TRADUCTION ne marche plus avec la 2.10 puisque la fonction affiche_logos() a ete supprime.
Donc les gens qui comme moi sont bloques car voulant etre a jour chercheront ici ta nouvelle solution.
Concernant ta methode, j’ai peut-etre plus simple
Le fichier a inclure logo_trad :
Et tu n’as plus qu’à directement traiter l’inclure comme une balise logo, ex :
Et si tu souhaites utiliser plusieurs fois ce code dans une page ou seulement simplifier l’utilisation, il est possible de faire :
Et d’utiliser #GETmonimage qui fonctionnera rigoureusement comme la fameuse balise #LOGO_ARTICLE
Je pense que cette maniere de faire est plus souple car elle permet de considerer qu’a partir du moment ou un article a un logo, toutes les traductions pourront l’afficher.
Pour ton cas particulier tu auras :
Si ton article n’a pas d’image il prendra celle d’une de ses traductions.
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
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.
Suivre les commentaires : |