style d'un résultat d'une boucle différent des autres ?

Bonjour,

Dans un site en spip 2.0.8, j'affiche grace à l'agenda 2.0 une liste d'évènements. Je souhaiterais faire ressortir certains évènements sélectionnés d'un mot clé. L'évènement qui a, par exemple, le mot clé "passionnant" s'affiche dans un style particulier (gras ou autre), le mot clé "très passionnant" ajoute -par ex- du rouge... et ceux qui n'ont pas de mots clés s'affichent normalement...

Voilà ma boucle actuelle :

<BOUCLE_event_list(EVENEMENTS){agendafull date_debut, date_fin, (#ENV{date}|annee)} {statut=publie}{par date_fin}{age<1} {0,7} {"<hr />"}>
        <b><a class= "texte-event" href="[(#URL_ARTICLE)]">#TITRE</a></b>
       [(#DATE_DEBUT|Agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE=non})]<br />
      </BOUCLE_event_list>

Quelqu'un voit-il comment je pourrais spécifier cette classe conditionnelle ? Ou faut-il faire plusieurs boucles ?

Par avance merci,

Jacques

Le 31/07/2009 21:11, jack a écrit :

Bonjour,

Dans un site en spip 2.0.8, j'affiche grace à l'agenda 2.0 une liste
d'évènements. Je souhaiterais faire ressortir certains évènements
sélectionnés d'un mot clé. L'évènement qui a, par exemple, le mot clé
"passionnant" s'affiche dans un style particulier (gras ou autre), le
mot clé "très passionnant" ajoute -par ex- du rouge... et ceux qui n'ont
pas de mots clés s'affichent normalement...

Voilà ma boucle actuelle :

<BOUCLE_event_list(EVENEMENTS){agendafull date_debut, date_fin,
(#ENV{date}|annee)} {statut=publie}{par date_fin}{age<1} {0,7} {"<hr />"}>
<b><a class= "texte-event" href="[(#URL_ARTICLE)]">#TITRE</a></b>
[(#DATE_DEBUT|Agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE=non})]<br />
</BOUCLE_event_list>

Quelqu'un voit-il comment je pourrais spécifier cette classe
conditionnelle ? Ou faut-il faire plusieurs boucles ?

Par avance merci,

Jacques

Salut Jacques,

A mon avis, tu as soit la possibilité de faire une jointure avec les MOTS, soit de faire une boucle MOTS à l'intérieur de la boucle EVENEMENTS. Mais le pb de la jointure est que apparemment tous tes événements n'ont pas de mots-clés associés. Or j'en sais trop peu au sujet des jointures : utilisent-elles des LEFT JOIN ? comment nommer les balises lorsqu'il y a ambiguité, par exemple peut-on écrire #EVENEMENTS.TITRE et #MOTS.TITRE ?

Donc au niveau de mes connaissances, je ne vois que la boucle MOTS interne :
<BOUCLE_event_list(EVENEMENTS).....>
<B_mot_cle_event>
<BOUCLE_mot_cle_event(MOTS) {id_evenement}>#SET{mot_cle_event,#TITRE}</BOUCLE_mot_cle_event>
</B_mot_cle_event>
     #SET{mot_cle_event,'standard'}
<//B_mot_cle_event>
<a class= "texte-event mot-cle#GET{mot_cle_event}" href="[(#URL_ARTICLE)]">#TITRE</a></b>
> [(#DATE_DEBUT|Agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE=non})]<br />
</BOUCLE_event_list>

puis dans ta feuille de style, tu crées les styles :
mot-cle-standard,
mot-cle-interessant,
mot-cle-tres-interessant
...

Bernard Martin-Rabaud

BMR a écrit :

Le 31/07/2009 21:11, jack a écrit :

Bonjour,

Dans un site en spip 2.0.8, j'affiche grace à l'agenda 2.0 une liste
d'évènements. Je souhaiterais faire ressortir certains évènements
sélectionnés d'un mot clé. L'évènement qui a, par exemple, le mot clé
"passionnant" s'affiche dans un style particulier (gras ou autre), le
mot clé "très passionnant" ajoute -par ex- du rouge... et ceux qui n'ont
pas de mots clés s'affichent normalement...

Voilà ma boucle actuelle :

<BOUCLE_event_list(EVENEMENTS){agendafull date_debut, date_fin,
(#ENV{date}|annee)} {statut=publie}{par date_fin}{age<1} {0,7} {"<hr />"}>
<b><a class= "texte-event" href="[(#URL_ARTICLE)]">#TITRE</a></b>
[(#DATE_DEBUT|Agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE=non})]<br />
</BOUCLE_event_list>

Quelqu'un voit-il comment je pourrais spécifier cette classe
conditionnelle ? Ou faut-il faire plusieurs boucles ?

Par avance merci,

Jacques

Salut Jacques,

A mon avis, tu as soit la possibilité de faire une jointure avec les MOTS, soit de faire une boucle MOTS à l'intérieur de la boucle EVENEMENTS. Mais le pb de la jointure est que apparemment tous tes événements n'ont pas de mots-clés associés. Or j'en sais trop peu au sujet des jointures : utilisent-elles des LEFT JOIN ? comment nommer les balises lorsqu'il y a ambiguité, par exemple peut-on écrire #EVENEMENTS.TITRE et #MOTS.TITRE ?

Donc au niveau de mes connaissances, je ne vois que la boucle MOTS interne :
<BOUCLE_event_list(EVENEMENTS).....>
<B_mot_cle_event>
<BOUCLE_mot_cle_event(MOTS) {id_evenement}>#SET{mot_cle_event,#TITRE}</BOUCLE_mot_cle_event>
</B_mot_cle_event>
    #SET{mot_cle_event,'standard'}
<//B_mot_cle_event>
<a class= "texte-event mot-cle#GET{mot_cle_event}" href="[(#URL_ARTICLE)]">#TITRE</a></b>
> [(#DATE_DEBUT|Agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE=non})]<br />
</BOUCLE_event_list>

puis dans ta feuille de style, tu crées les styles :
mot-cle-standard,
mot-cle-interessant,
mot-cle-tres-interessant
...

Bernard Martin-Rabaud

Bonjour Bernard,

Merci beaucoup pour ta réponse. J'ai essayé en local et apparemment il manque quelque chose.
En essayant ta boucle telle quelle, firebug me renvoie uniquement la classe texte-event, pour tous les évènements.
J'ai remplacé <a class= "texte-event mot-cle#GET{mot_cle_event}" par <a class= "#GET{mot_cle_event}" et maintenant il me renvoie systématiquement la classe standard.
L'idée me semble excellente mais tout se passe comme si un problème de syntaxe l'empêchait de récupérer les mots clés associés aux évènements...
Je continue de chercher...

Bonne journée,
Jacques

Voilà, je viens de trouver ce qui clochait !

Il ne faut pas fermer trop tôt la boucle MOTS avec <//B_mot...

Voici la boucle qui marche :

<BOUCLE_event_list(EVENEMENTS){agendafull date_debut, date_fin, (#ENV{date}|annee)} {statut=publie}{par date_fin}{age<1} {0,7} {"<hr />"}>
<B_mot_cle_event>
<BOUCLE_mot_cle_event(MOTS) {id_evenement}>[(#SET{mot_cle_event,#TITRE})]</BOUCLE_mot_cle_event>
</B_mot_cle_event>
<a class= "#GET{mot_cle_event}" href="[(#URL_ARTICLE)]">#TITRE</a></b>
> [(#DATE_DEBUT|Agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE=non})]<br />
     #SET{mot_cle_event,'standard'}
<//B_mot_cle_event>
</BOUCLE_event_list>

Je n'ai plus qu'à travailler la css ! :slight_smile:
Merci

Jacques

Le 01/08/2009 12:34, jack a écrit :

Voilà, je viens de trouver ce qui clochait !

Il ne faut pas fermer trop tôt la boucle MOTS avec <//B_mot...

Voici la boucle qui marche :

<BOUCLE_event_list(EVENEMENTS){agendafull date_debut, date_fin,
(#ENV{date}|annee)} {statut=publie}{par date_fin}{age<1} {0,7} {"<hr />"}>
<B_mot_cle_event>
<BOUCLE_mot_cle_event(MOTS)
{id_evenement}>[(#SET{mot_cle_event,#TITRE})]</BOUCLE_mot_cle_event>
</B_mot_cle_event>
<a class= "#GET{mot_cle_event}" href="[(#URL_ARTICLE)]">#TITRE</a></b>
> [(#DATE_DEBUT|Agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE=non})]<br />
#SET{mot_cle_event,'standard'}
<//B_mot_cle_event>
</BOUCLE_event_list>

Je n'ai plus qu'à travailler la css ! :slight_smile:
Merci

Jacques

Eh oui, désolé pour l'erreur... Bon la css c'est presque du plaisir...

A+

Bernard Martin-Rabaud