Boucle LOGO ?

Bonjour,

Dans un squelette rubrique.html, je cherche à faire une boucle qui liste les articles de la rubrique (une boucle ARTICLES, donc) et qui, pour chaque article, suit le processus suivant :

  • Si l’article a un logo, on affiche le #LOGO_ARTICLE avec l’#URL_ARTICLE sur le #LOGO_ARTICLE.

  • Si l’article n’a pas de logo, on affiche le #TITRE de l’article avec l’#URL_ARTICLE sur le #TITRE.

Voilà mon code qui me renvoie 2 listes :
D’abord les logos avec liens, puis les titres avec liens.

<BOUCLE_ArtCarreaux1(ARTICLES) {id_rubrique} {par num titre, titre}>

<B_logoArtCarreaux1>

#LOGO_ARTICLE

</B_logoArtCarreaux1>

#TITRE

<//B_logoArtCarreaux1>

</BOUCLE_ArtCarreaux1>

Une idée ?

Merci d’avance,

Hervé

Le 11.02.17 à 17:42, Hervé Le Dantec a écrit :

Bonjour,

*Dans un squelette rubrique.html, je cherche à faire une boucle qui
liste les articles de la rubrique (une boucle ARTICLES, donc) et qui,
pour chaque article, suit le processus suivant :*

  *
    Si l’article a un logo, on affiche le #LOGO_ARTICLE avec
    l’#URL_ARTICLE sur le #LOGO_ARTICLE.

  * Si l’article n’a pas de logo, on affiche le #TITRE de l’article avec
    l’#URL_ARTICLE sur le #TITRE.

V*oilà mon code qui me renvoie 2 listes :*
*D’abord les logos avec liens, puis les titres avec liens.*

<BOUCLE_ArtCarreaux1(ARTICLES) {id_rubrique} {par num titre, titre}>

<B_logoArtCarreaux1>

<div><a href="#URL_ARTICLE">#LOGO_ARTICLE</a></div>

</B_logoArtCarreaux1>

<div><a href="#URL_ARTICLE">#TITRE</a></div>

<//B_logoArtCarreaux1>

</BOUCLE_ArtCarreaux1>

Une idée ?

Merci d’avance,

Hervé

HOULA ! Cela ne peut sûrement pas te donner un résultat correct !
Les parties optionnelles de boucle (<B_boucle ; </B_boucle ; <//B_boucle) sont prévu pour aller à l'exterieur d'une boucle, pas à l'intérieure. Elle sont là pour

1. Envelloper l'ensemble de résulats produits par la boucle si celle-ci renvoie quelque chose (<B_boucle ; </B_boucle>)
2. Donner quelque chose si la boucle ne donne rien (<//B_boucle)

Cela n'est pas fait pour être à l'intérieur d'une boucle, et encore moins pour faire des tests sur le résultat d'une balise.

Dans ton cas, tout simple

[<a href="#URL_ARTICLE"(#LOGO_ARTICLE|sinon{#TITRE})</a>]

Le filtre |sinon s'applique à un balise, et renvoi son argument si la balise est vide.

Donc si #LOGO_ARTICLE ne donne rien, on renvoi #TITRE

--
Maïeul

Le filtre |sinon

Je le connais, mais, là, je n’y ai tout simplement pas pensé et je me suis engagé dans des complications inutiles.

bonjour,

Le 11 févr. 2017 à 17:42, Hervé Le Dantec <herve.ledantec@gmail.com> a écrit :

Bonjour,

Dans un squelette rubrique.html, je cherche à faire une boucle qui liste les articles de la rubrique (une boucle ARTICLES, donc) et qui, pour chaque article, suit le processus suivant :

  • Si l’article a un logo, on affiche le #LOGO_ARTICLE avec l’#URL_ARTICLE sur le #LOGO_ARTICLE.

  • Si l’article n’a pas de logo, on affiche le #TITRE de l’article avec l’#URL_ARTICLE sur le #TITRE.

Voilà mon code qui me renvoie 2 listes :
D’abord les logos avec liens, puis les titres avec liens.

le filtre |sinon http://www.spip.net/fr_article4313.html#sinon pour affichage alternatif en une seule liste

le critère {logo} et son {!logo} pour afficher en deux listes

Claude

<BOUCLE_ArtCarreaux1(ARTICLES) {id_rubrique} {par num titre, titre}>

<B_logoArtCarreaux1>

</B_logoArtCarreaux1>

<//B_logoArtCarreaux1>

</BOUCLE_ArtCarreaux1>

Une idée ?

Merci d’avance,

Hervé

Bonjour,
Il me semble qu'il y aurait plus simple notamment eu utilisant le filtre
oui/non :
http://www.spip.net/fr_article4186.html

Ce qui donnerait un truc comme ça :

<BOUCLE_ArtCarreaux1(ARTICLES) {id_rubrique} {par num titre, titre}>

[
   <div>
      <a href="#URL_ARTICLE">
         (#LOGO_ARTICLE|?{#LOGO_ARTICLE,#TITRE})
</a>
</div>
]

</BOUCLE_ArtCarreaux1>

Cordialement

Fa_b

Merci encore Maïeul,

Ça marche super bien !

<BOUCLE_ArtCarreaux(ARTICLES) {id_rubrique} {par num titre, titre}>

[

(#LOGO_ARTICLE|sinon{#TITRE})
]

</BOUCLE_ArtCarreaux>

Et c’est encore mieux avec le filtre du plugin « Filtre image_responsive » (en version 7.1.0, les versions suivantes bogues, soit dit en passant), plus quelques filtres pour les alt et tiltle de l’image :

<BOUCLE_ArtCarreaux(ARTICLES) {id_rubrique} {par num titre, titre}>

[

(#LOGO_ARTICLE|sinon{#TITRE}|image_responsive{285/260/130}|inserer_attribut{title,#TITRE}|inserer_attribut{alt, #TITRE|attribut_html})
]

</BOUCLE_ArtCarreaux>

Hervé

Le 11 févr. 2017 à 18:27, Hervé Le Dantec <herve.ledantec@gmail.com> a écrit :

Le filtre |sinon

Je le connais, mais, là, je n’y ai tout simplement pas pensé et je me suis engagé dans des complications inutiles.

Je vais donc tester ta suggestion.

Merci Maïeul !

Envoyé de mon iPhone

Le 11 févr. 2017 à 18:17, Maïeul <maieul@maieul.net> a écrit :

Le 11.02.17 à 17:42, Hervé Le Dantec a écrit :

Bonjour,

*Dans un squelette rubrique.html, je cherche à faire une boucle qui

liste les articles de la rubrique (une boucle ARTICLES, donc) et qui,

pour chaque article, suit le processus suivant :*

Si l’article a un logo, on affiche le #LOGO_ARTICLE avec

l’#URL_ARTICLE sur le #LOGO_ARTICLE.

  • Si l’article n’a pas de logo, on affiche le #TITRE de l’article avec

l’#URL_ARTICLE sur le #TITRE.

Voilà mon code qui me renvoie 2 listes :

D’abord les logos avec liens, puis les titres avec liens.

<BOUCLE_ArtCarreaux1(ARTICLES) {id_rubrique} {par num titre, titre}>

<B_logoArtCarreaux1>

</B_logoArtCarreaux1>

<//B_logoArtCarreaux1>

</BOUCLE_ArtCarreaux1>

Une idée ?

Merci d’avance,

Hervé

HOULA ! Cela ne peut sûrement pas te donner un résultat correct !
Les parties optionnelles de boucle (<B_boucle ; </B_boucle ; <//B_boucle) sont prévu pour aller à l’exterieur d’une boucle, pas à l’intérieure. Elle sont là pour

  1. Envelloper l’ensemble de résulats produits par la boucle si celle-ci renvoie quelque chose (<B_boucle ; </B_boucle>)
  2. Donner quelque chose si la boucle ne donne rien (<//B_boucle)

Cela n’est pas fait pour être à l’intérieur d’une boucle, et encore moins pour faire des tests sur le résultat d’une balise.

Dans ton cas, tout simple

[<a href=« #URL_ARTICLE »(#LOGO_ARTICLE|sinon{#TITRE})]

Le filtre |sinon s’applique à un balise, et renvoi son argument si la balise est vide.

Donc si #LOGO_ARTICLE ne donne rien, on renvoi #TITRE


Maïeul
http://blog.maieul.net
http://geekographie.maieul.net