Liste d'élément : un élément au hasard

Bonjour à tous
Je veux réaliser un système de tags de type flickR. J'utilise des mots clefs que j'aligne dans un cadre. Je veux les colorer de façon aléatoire. De plus, j'aimerais agir sur leur taille en fonction du nombre d'articles associés à ce mot clef.

On dira pour le moment, que pour la seconde partie, je suis sur la bonne voie. Mais la première partie (à savoir code couleurs au hasard) me pose problème.

Je crée un tableau :
#SET{couleur_tag,#ARRAY{0,blue,1,green,2,yellow,3,red}}

Déjà, pour rechercher une valeur du tableau, je ne sais pas comment faire. Je m'attendais à un truc du genre #GET{couleur_tag,0} ou #GET{couleur_tag{0}} mais ça ne marche pas. Y a t'il une syntaxe correcte ?

Ensuite pour avoir un numéro au hasard, j'ai rien trouvé. Faut il absolument passer par du php ? On pourrait utiliser [(#COMPTEUR_BOUCLE|modulo{4})], ce serait déjà pas mal, mais si le hasard est possible, j'aimerais l'utiliser ...

Merci par avance

Là en quelques sortes, ce que tu veux faire c'est ceci:

Le 13/08/07, François<francois@artisans-multimedia.com> a écrit :

Bonjour à tous
Je veux réaliser un système de tags de type flickR. J'utilise des mots
clefs que j'aligne dans un cadre. Je veux les colorer de façon
aléatoire. De plus, j'aimerais agir sur leur taille en fonction du
nombre d'articles associés à ce mot clef.

On dira pour le moment, que pour la seconde partie, je suis sur la bonne
voie. Mais la première partie (à savoir code couleurs au hasard) me pose
problème.

Je crée un tableau :
#SET{couleur_tag,#ARRAY{0,blue,1,green,2,yellow,3,red}}

Déjà, pour rechercher une valeur du tableau, je ne sais pas comment
faire. Je m'attendais à un truc du genre #GET{couleur_tag,0} ou
#GET{couleur_tag{0}} mais ça ne marche pas. Y a t'il une syntaxe correcte ?

Ensuite pour avoir un numéro au hasard, j'ai rien trouvé. Faut il
absolument passer par du php ? On pourrait utiliser
[(#COMPTEUR_BOUCLE|modulo{4})], ce serait déjà pas mal, mais si le
hasard est possible, j'aimerais l'utiliser ...

Merci par avance

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : http://www.spip-contrib.net/spikini/FaQ

J'ai réglé le problème de la taille des éléments. Ce que j'aimerais faire maintenant, c'est faire varier la couleur du lien :
- soit aléatoirement
- soit selon une règle précise qui peut être simple.

Teddy Payet a écrit :

Là en quelques sortes, ce que tu veux faire c'est ceci:
Nuage (de mots-clés) - SPIP-Contrib

Le 13/08/07, François<francois@artisans-multimedia.com> a écrit :

Bonjour à tous
Je veux réaliser un système de tags de type flickR. J'utilise des mots
clefs que j'aligne dans un cadre. Je veux les colorer de façon
aléatoire. De plus, j'aimerais agir sur leur taille en fonction du
nombre d'articles associés à ce mot clef.

On dira pour le moment, que pour la seconde partie, je suis sur la bonne
voie. Mais la première partie (à savoir code couleurs au hasard) me pose
problème.

Je crée un tableau :
#SET{couleur_tag,#ARRAY{0,blue,1,green,2,yellow,3,red}}

Déjà, pour rechercher une valeur du tableau, je ne sais pas comment
faire. Je m'attendais à un truc du genre #GET{couleur_tag,0} ou
#GET{couleur_tag{0}} mais ça ne marche pas. Y a t'il une syntaxe correcte ?

Ensuite pour avoir un numéro au hasard, j'ai rien trouvé. Faut il
absolument passer par du php ? On pourrait utiliser
[(#COMPTEUR_BOUCLE|modulo{4})], ce serait déjà pas mal, mais si le
hasard est possible, j'aimerais l'utiliser ...

Merci par avance

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : http://www.spip-contrib.net/spikini/FaQ

Tu as des couleurs définies? C'est-à-dire 4 ou cinq couleurs? Ou c'est totalement aléatoire?...

Le 13 août 07 à 18:15, François a écrit :

J'ai réglé le problème de la taille des éléments. Ce que j'aimerais
faire maintenant, c'est faire varier la couleur du lien :
- soit aléatoirement
- soit selon une règle précise qui peut être simple.

Teddy Payet a écrit :

Là en quelques sortes, ce que tu veux faire c'est ceci:
Nuage (de mots-clés) - SPIP-Contrib

Le 13/08/07, François<francois@artisans-multimedia.com> a écrit :

Bonjour à tous
Je veux réaliser un système de tags de type flickR. J'utilise des mots
clefs que j'aligne dans un cadre. Je veux les colorer de façon
aléatoire. De plus, j'aimerais agir sur leur taille en fonction du
nombre d'articles associés à ce mot clef.

On dira pour le moment, que pour la seconde partie, je suis sur la bonne
voie. Mais la première partie (à savoir code couleurs au hasard) me pose
problème.

Je crée un tableau :
#SET{couleur_tag,#ARRAY{0,blue,1,green,2,yellow,3,red}}

Déjà, pour rechercher une valeur du tableau, je ne sais pas comment
faire. Je m'attendais à un truc du genre #GET{couleur_tag,0} ou
#GET{couleur_tag{0}} mais ça ne marche pas. Y a t'il une syntaxe correcte ?

Ensuite pour avoir un numéro au hasard, j'ai rien trouvé. Faut il
absolument passer par du php ? On pourrait utiliser
[(#COMPTEUR_BOUCLE|modulo{4})], ce serait déjà pas mal, mais si le
hasard est possible, j'aimerais l'utiliser ...

Merci par avance

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : http://www.spip-contrib.net/spikini/FaQ

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : http://www.spip-contrib.net/spikini/FaQ

Quatre ou cinq couleurs. Mais j'ai trouvé la solution qui donne de chouettes résultats, avec un impact php très faible. Voilà le squelette :
<B_tags>
<?php $macouleur_tag=array(0=>"#07c0ec",1=>"#b2dc3a",2=>"#f22807",3=>"#fdf329",);?>
<div id="tags">
     <BOUCLE_tags(MOTS){type=tags}{par titre}{' - '}{doublons}>
     <BOUCLE_Art(ARTICLES){titre_mot=#TITRE}>
     #SET{compte_b,#EVAL{0.6+#TOTAL_BOUCLE/5}}
       </BOUCLE_Art>
      <?php $ident=[(#COMPTEUR_BOUCLE|modulo{4})]; ?>
      <?php $ident=$macouleur_tag[$ident]; ?>
           [<span style="font-size:#GET{compte_b}em;"><a href="#URL_MOT" style="color:<?php echo $ident?>;">(#TITRE)</a></span>]
     </BOUCLE_tags>
</div>
</B_tags>

Ce squelette peut être appelé depuis le squelette principal avec un inclure. Pour le modifier, on change le tableau $macouleur_tag et le nombre correspondant à modulo (quatre couleurs donne modulo{4}). Concernant la taille des caractères pour les mots clefs, j'utilise #TOTAL_COMPTEUR de la boucle ARTICLES, mais on devrait encore pouvoir s'amuser à pondérer celà avec #POPULARITE.

Si ça peut servir, c'est tant mieux :wink:
Merci pour ton aide Teddy, ça m'a aidé à réfléchir.

Payet Teddy a écrit :

Tu as des couleurs définies? C'est-à-dire 4 ou cinq couleurs? Ou c'est totalement aléatoire?...

Le 13 août 07 à 18:15, François a écrit :

J'ai réglé le problème de la taille des éléments. Ce que j'aimerais
faire maintenant, c'est faire varier la couleur du lien :
- soit aléatoirement
- soit selon une règle précise qui peut être simple.

Teddy Payet a écrit :

Là en quelques sortes, ce que tu veux faire c'est ceci:
Nuage (de mots-clés) - SPIP-Contrib

Le 13/08/07, François<francois@artisans-multimedia.com> a écrit :

Bonjour à tous
Je veux réaliser un système de tags de type flickR. J'utilise des mots
clefs que j'aligne dans un cadre. Je veux les colorer de façon
aléatoire. De plus, j'aimerais agir sur leur taille en fonction du
nombre d'articles associés à ce mot clef.

On dira pour le moment, que pour la seconde partie, je suis sur la bonne
voie. Mais la première partie (à savoir code couleurs au hasard) me pose
problème.

Je crée un tableau :
#SET{couleur_tag,#ARRAY{0,blue,1,green,2,yellow,3,red}}

Déjà, pour rechercher une valeur du tableau, je ne sais pas comment
faire. Je m'attendais à un truc du genre #GET{couleur_tag,0} ou
#GET{couleur_tag{0}} mais ça ne marche pas. Y a t'il une syntaxe correcte ?

Ensuite pour avoir un numéro au hasard, j'ai rien trouvé. Faut il
absolument passer par du php ? On pourrait utiliser
[(#COMPTEUR_BOUCLE|modulo{4})], ce serait déjà pas mal, mais si le
hasard est possible, j'aimerais l'utiliser ...

Merci par avance

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : http://www.spip-contrib.net/spikini/FaQ

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : http://www.spip-contrib.net/spikini/FaQ

François a écrit :

Faut il absolument passer par du php ?

Il n'est jamais impossible de programmer du php dans SPIP !
Simplement et pour que le cache fonctionne, il suffit de programmer un filtre qui renvoie la réponse en question.

Il te suffirait du coup de mettre dans ton squelette : [(#TITRE|ma_couleur_aleatoire{#URL_MOT})] où le filtre serait défini dans mes_fontions.php comme suit :

function url_couleur_aleatoire($texte, $url='#') {
   $couleur = blah blah !
   return "<a href='$url' style='color:$couleur;'>$texte</a>"
}

Pat

P.S. : code pas testé, juste une piste.

François a écrit :

Faut il absolument passer par du php ?

Il n'est jamais impossible de programmer du php dans SPIP !
Simplement et pour que le cache fonctionne, il suffit de programmer un
filtre qui renvoie la réponse en question.

Il te suffirait du coup de mettre dans ton squelette :
[(#TITRE|url_couleur_aleatoire{#URL_MOT})] où le filtre serait défini
dans mes_fontions.php comme suit :

function url_couleur_aleatoire($texte, $url='#') {
    $couleur = blah blah !
    return "<a href='$url' style='color:$couleur;'>$texte</a>"
}

Pat

P.S. : code pas testé, juste une piste.

C'est vrai !! J'inclus toujours le code directement, mais tu as raison, il me faudrait mieux le mettre dans mes fonctions.

De façon plus générale, le mieux serait de créer un plugin qui permettrait de régler les variables 'couleur' et 'taille' dans un plugin, voire même de faire de l'aléatoire sur ces variables ou de définir différents moyens pour attribuer tailles et couleurs (popularité, nb d'articles, etc.).

Je suis surement trop faible en php pour créer cela, mais ... si quelqu'un s'y met, je veux bien aider ...

Pat a écrit :

François a écrit :

Faut il absolument passer par du php ?

Il n'est jamais impossible de programmer du php dans SPIP !
Simplement et pour que le cache fonctionne, il suffit de programmer un
filtre qui renvoie la réponse en question.

Il te suffirait du coup de mettre dans ton squelette :
[(#TITRE|url_couleur_aleatoire{#URL_MOT})] où le filtre serait défini
dans mes_fontions.php comme suit :

function url_couleur_aleatoire($texte, $url='#') {
    $couleur = blah blah !
    return "<a href='$url' style='color:$couleur;'>$texte</a>"
}

Pat

P.S. : code pas testé, juste une piste.