Récupérer le logo de l’article d’origine - site multilingue

SPIP 1.7.1. - Pour que tous les logos des articles traduits reprennent le logo de l’article « langue d’origine ».

L’idée de cette boucle hyper simple, pour un site multilingue, est de ne pas encombrer le dossier IMG de 36 000 fois le même logo, mais de se servir d’un seul et même logo (celui de l’article d’origine-référence langue) pour tous les articles traduits.

Conditions :

-  SPIP 1.7.1
-  activer dans l’espace privé
Administration du site / icone Gestion des langues / icone Multilinguisme / cadre d’options Multilinguisme / Gérer les liens de traduction ?
en cliquant sur « oui » et valider
-  pour chaque article en langue autre que celle d’origine, ne pas oublier d’indiquer quel est l’article de référence pour que la balise fonctionne (cf LANGUE ET TRADUCTIONS DE L’ARTICLE).

Mise en place (2 secondes) :

insérer partout où vous voulez dans vos squellettes le logo de l’article d’origine en incluant dans votre code html :

<BOUCLE_logo_trad(ARTICLES){id_article}>
                <BOUCLE_logo_origine(ARTICLES){id_trad}>
                [(#LOGO_ARTICLE|left)]
                </BOUCLE_logo_origine>
        </BOUCLE_logo_trad>
                [(#LOGO_ARTICLE|left)]
        <//B_logo_trad>

(remplacer « left » par « right » pour l’avoir à droite)

Cette boucle affiche donc pour les articles traduits le logo de l’article « d’origine », et pour l’article d’origine, son propre logo (qu’il vous faudra pour le coup bel et bien télécharger).

Dernière modification de cette page le 7 mai 2012

Discussion

7 discussions

  • Bonjour,

    il semble y avoir un effet de bord avec SPIP 3.1 :

    il faut ajouter remplacer id_trad par traduction

    sinon tous les logos des articles (de la langue d’origine) du site s’affichent.

    dd

    Répondre à ce message

  • Bonsoir,

    En 2011 avec 2.1.10, toujours efficace, merci

    Nicolas

    Répondre à ce message

  • 2

    À la place du critère {id_trad}, on peut utiliser le critère {traduction}{origine_traduction} qui prend l’article de référence, même si c’est l’article courant.
    Ainsi, on évite de dupliquer tout l’html dans un bloc <//B_logo_trad>.

    • Le critère origine_traduction est en effet efficace par exemple avec la boucle suivante on récupère dans une rubrique donnée tous les articles correspondant à la langue courante et pour chaque article, le logo de l’article de référence.

      <BOUCLE_articles_rubrique(ARTICLES) {id_rubrique}{lang}>
      <BOUCLE_logo_origine_traduction(ARTICLES){traduction}{origine_traduction}>
      [(#LOGO_ARTICLE_RUBRIQUE)]})]
      </BOUCLE_logo_origine_traduction>
      </BOUCLE_articles_rubrique>

      Malheureusement, si on veut associer des informations à ce logo, ce sera les informations issues de l’article de référence. Ainsi, dans le cas du code ci-dessous, les balises « title » et « alt » du logo seront dans la langue de référence et non dans la langue courante. Plus ennuyeux, l’url renverra vers l’article de référence et non vers l’article traduit.

      <BOUCLE_articles_rubrique(ARTICLES) {id_rubrique}{lang}>
      <BOUCLE_logo_origine_traduction(ARTICLES){traduction}{origine_traduction}>
      [(#LOGO_ARTICLE_RUBRIQUE|left|#URL_ARTICLE|image_reduire{75,75}
      |inserer_attribut{alt,[(#TITRE|textebrut)]}
      |inserer_attribut{title,[(#SOUSTITRE|textebrut)]})]
      </BOUCLE_logo_origine_traduction>
      </BOUCLE_articles_rubrique>

      En conclusion, le code fonctionne bien dans un article mais n’est pas une solution dans un menu de rubrique par exemple...

    • il suffit de « sortir » le titre et lien de l’article de la 1re boucle, non ?

      j’écrirais...

      <BOUCLE_articles_rubrique(ARTICLES) {id_rubrique}{lang?}>
      
      <BOUCLE_logo_origine_traduction(ARTICLES){traduction}{origine_traduction}>
      [(#LOGO_ARTICLE_RUBRIQUE|left|image_reduire{75,75})]
      </BOUCLE_logo_origine_traduction>
      
      #URL_ARTICLE
      #TITRE
      </BOUCLE_articles_rubrique>

      Le titre renvoi alors à l’article de la traduction en cours (critère lang ? )

    Répondre à ce message

  • sur une 1.9 ca fonctionne pas.
    Le but serait d’avoir automatiquement le logo de la rubrique si il existe, sinon automatiquement qu’il prenne celui de l’article d’origine, et si aucun des deux, rien ne s’affiche. J’ai pas eu le temps de mieux tester les boucles mais n’y suis pas arrivé pour le moment

    Répondre à ce message

  • comme j’ai pas mal tatonné pour trouver quel était le bon code avec 1.6.1 je donne ci-dessous le code qui marche pour moi :

    <BOUCLE_logo_trad(ARTICLES){id_article}>
                    <BOUCLE_logo_origine(ARTICLES){traduction}{origine_traduction}{doublons}>
                    [(#LOGO_ARTICLE|center||reduire_image{200})]
                    </BOUCLE_logo_origine>       
                    [(#LOGO_ARTICLE|center||reduire_image{200})]</BOUCLE_logo_trad>
                            <//B_logo_trad>

    cela n’affiche pas les logos en double
    catherine

    Répondre à ce message

  • en faisant un copier-coller, il m’affiche deux logos (celui del’article et de la rubrique apres...)

    je suis sur 1.8b2

    comprend pas...
     :-(

    Répondre à ce message

  • Michel Possoz

    Bonjour,

    Bonne contribution pour reduire la taille memoire cote client et serveur.

    Je suis en version 1.8 a2 et la boucle proposee retourne tout les logos present dans tout les articles. Je pense que ce probleme devrait etre present dans la version 1.7.1.

    Il y a lieu d’ajouter le critere

    id_trad>0

    au critere

    id_trad

    pour corrige le probleme. Je pense qu’il y a depuis lors un nouveau critere traduction disponible ?

    Bien a vous.
    Michel

    Répondre à ce message

Ajouter un commentaire

Qui êtes-vous ?

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