Condition, boucle et traitement d'image

Bonjour,

voici le casse-tête que je parviens pas à résoudre :

1- Je souhaite afficher une liste des rubriques du site -> facile : une boucle rubriques sur les rubriques qui m'intéressent

<BOUCLE_rubriques(RUBRIQUES) {racine}{id_rubrique>3} {par num titre}>
  bla bla
</BOUCLE_rubriques>

2- Je veux afficher mes titres de rubriques sur un fond de bouton -> j'arrive encore à faire

<BOUCLE_rubriques(RUBRIQUES) {racine}{id_rubrique>3} {par num titre}>
        <li style="background: url([(#CHEMIN{images/bouton.png})]) no-repeat">
    <a href="#URL_RUBRIQUE">[(#TITRE|couper{20})]</a>
  </li>
</BOUCLE_rubriques>

3- J'ai un mot clef de couleur dans mes rubriques, et je sais encore colorer mon bouton en fonction de cette couleur :

<BOUCLE_couleur(MOTS){id_rubrique}{id_groupe=2}>
  [(#CHEMIN{images/bouton.png}|image_sepia{#DESCRIPTIF*})] -> le mot-clef existe, la valeur de la couleur est rangée dans le descriptif du mot-clef
</BOUCLE_couleur>
  [(#CHEMIN{images/bouton.png})] -> pas de mot clef couleur, on prend l'image de base
<//B_couleur>

4- ... mais afficher le texte du bouton sur le fond de couleur, et
5- Afficher la rubrique exposée avec sa couleur, et avec le bouton normal pour les autres
sont au-dessus de mes moyens :
ça bloque au niveau du style dynamique et du paramètre url du background : dès qu'on tente de mettre un truc un peu plus compliqué que le chemin à une image statique, rien ne va plus (enfin, avec le code que je suis capable d'écrire), et je ne parle même pas de rajouter le test sur #EXPOSE :-))

Au fond de la salle, certains auraient-ils une idée, une stratégie pour mixer tout ça ?

Merci d'avance

Michel

Bonjour,

Michel Roche a écrit :

Bonjour,

voici le casse-tête que je parviens pas à résoudre :

1- Je souhaite afficher une liste des rubriques du site -> facile : une boucle rubriques sur les rubriques qui m'intéressent

<BOUCLE_rubriques(RUBRIQUES) {racine}{id_rubrique>3} {par num titre}>
    bla bla
</BOUCLE_rubriques>

2- Je veux afficher mes titres de rubriques sur un fond de bouton -> j'arrive encore à faire

<BOUCLE_rubriques(RUBRIQUES) {racine}{id_rubrique>3} {par num titre}>
       <li style="background: url([(#CHEMIN{images/bouton.png})]) no-repeat">
        <a href="#URL_RUBRIQUE">[(#TITRE|couper{20})]</a>
    </li>
</BOUCLE_rubriques>

3- J'ai un mot clef de couleur dans mes rubriques, et je sais encore colorer mon bouton en fonction de cette couleur :

<BOUCLE_couleur(MOTS){id_rubrique}{id_groupe=2}>
    [(#CHEMIN{images/bouton.png}|image_sepia{#DESCRIPTIF*})] -> le mot-clef existe, la valeur de la couleur est rangée dans le descriptif du mot-clef
</BOUCLE_couleur>
    [(#CHEMIN{images/bouton.png})] -> pas de mot clef couleur, on prend l'image de base
<//B_couleur>

4- ... mais afficher le texte du bouton sur le fond de couleur, et

À vue de nez:
<BOUCLE_rubriques(RUBRIQUES) {racine}{id_rubrique>3} {par num titre}>
<BOUCLE_encouleur(RUBRIQUES) {id_rubrique}{id_groupe=2}>
<li style="background: url([(#CHEMIN{images/bouton.png}|image_sepia{#DESCRIPTIF*})])"[ class="(#EXPOSE)"]> #_rubriques:TITRE </li>
</BOUCLE_encouleur>
<li style="background: url([(#CHEMIN{images/bouton.png})])> #_rubriques:TITRE </li>
<//B_encouleur>

5- Afficher la rubrique exposée avec sa couleur, et avec le bouton normal pour les autres

cf EXPOSE supra

(pas testé)

sont au-dessus de mes moyens :
ça bloque au niveau du style dynamique et du paramètre url du background : dès qu'on tente de mettre un truc un peu plus compliqué que le chemin à une image statique, rien ne va plus (enfin, avec le code que je suis capable d'écrire), et je ne parle même pas de rajouter le test sur #EXPOSE :-))

il suffit de tester, cela rajoute « juste » une classe 'on'... on peut ensuite ajouter ses propres css

--
En espérant ne pas avoir commis de nouvelles âneries,
hth
Frédéric

4- ... mais afficher le texte du bouton sur le fond de couleur, et
5- Afficher la rubrique exposée avec sa couleur, et avec le bouton normal pour les autres
sont au-dessus de mes moyens :
ça bloque au niveau du style dynamique et du paramètre url du background : dès qu'on tente de mettre un truc un peu plus compliqué que le chemin à une image statique, rien ne va plus (enfin, avec le code que je suis capable d'écrire), et je ne parle même pas de rajouter le test sur #EXPOSE :-))

Au fond de la salle, certains auraient-ils une idée, une stratégie pour mixer tout ça ?

Merci d'avance

Bonjour,
un truc dans ce genre ? :
http://www.boite-a-musique.com

Le 31 mars 09 à 06:18, fremoin a écrit :

Bonjour,

Michel Roche a écrit :

Bonjour,
voici le casse-tête que je parviens pas à résoudre :
1- Je souhaite afficher une liste des rubriques du site -> facile : une boucle rubriques sur les rubriques qui m'intéressent
<BOUCLE_rubriques(RUBRIQUES) {racine}{id_rubrique>3} {par num titre}>
   bla bla
</BOUCLE_rubriques>
2- Je veux afficher mes titres de rubriques sur un fond de bouton -> j'arrive encore à faire
<BOUCLE_rubriques(RUBRIQUES) {racine}{id_rubrique>3} {par num titre}>
      <li style="background: url([(#CHEMIN{images/bouton.png})]) no-repeat">
       <a href="#URL_RUBRIQUE">[(#TITRE|couper{20})]</a>
   </li>
</BOUCLE_rubriques>
3- J'ai un mot clef de couleur dans mes rubriques, et je sais encore colorer mon bouton en fonction de cette couleur :
<BOUCLE_couleur(MOTS){id_rubrique}{id_groupe=2}>
   [(#CHEMIN{images/bouton.png}|image_sepia{#DESCRIPTIF*})] -> le mot-clef existe, la valeur de la couleur est rangée dans le descriptif du mot-clef
</BOUCLE_couleur>
   [(#CHEMIN{images/bouton.png})] -> pas de mot clef couleur, on prend l'image de base
<//B_couleur>
4- ... mais afficher le texte du bouton sur le fond de couleur, et

À vue de nez:
<BOUCLE_rubriques(RUBRIQUES) {racine}{id_rubrique>3} {par num titre}>
<BOUCLE_encouleur(RUBRIQUES) {id_rubrique}{id_groupe=2}>
<li style="background: url([(#CHEMIN{images/bouton.png}|image_sepia{#DESCRIPTIF*})])"[ class="(#EXPOSE)"]> #_rubriques:TITRE </li>
</BOUCLE_encouleur>
<li style="background: url([(#CHEMIN{images/bouton.png})])> #_rubriques:TITRE </li>
<//B_encouleur>

Bonsoir,
en fait ça ne fonctionne pas, après avoir tripatatouillé la ligne dans tous les sens, j'ai dû admettre que je n'arrivais pas à faire faire un tel calcul au milieu du style css comme ça.

C'est un copain qui m'a donné la solution, très élégante que voilà :
<BOUCLE_rubriques(RUBRIQUES) {racine}{id_rubrique>3} {par num titre}>
         <li>
         <a href="#URL_RUBRIQUE">[(#TITRE|couper{20})]</a>
  </li>
</BOUCLE_rubriques>

Dans la css (habillage) :
#navigation li {background: url(images/bouton.png) no-repeat}

Et une autre css, calculée par spip cette fois : nav.css.html
<!-- notre fameuse boucle pour récupérer la couleur-->
<BOUCLE_couleur(MOTS){id_rubrique}{id_groupe=2}>
  #SET{couleur, #DESCRIPTIF*}
</BOUCLE_couleur>
<!--la définition du style associé qui se fait du coup simplement-->
#navigation li.on {
  background:transparent url([(#CHEMIN{images/bouton.png}
        |image_sepia{#GET{couleur, F00}}
        |extraire_attribut{src})]) no-repeat;
}
... sans oublier de l'appeler dans l'entête des pages.

Merci pour vos idées en tout cas (et les jolies musiques de la boite à musique :slight_smile:

Michel