Images aléatoires

Bonjour

Je rencontre 2 problèmes dans la mise en place d’images aléatoires pour la page d’accueil d’un site web : http://zinsou.aarts.org

Les petites images sont aléatoires, je vais chercher chacune d’elles {par hasard}{doublons} parmi les documents d’un article avec le code suivant dans une :

L’article contenant les images en pièces jointes est déterminé par le mot clé LogoAleatoireCarre du groupe PositionGrilleSommaire

Voici le code de inc-logo.html :

<BOUCLE_carre_aleatoire(ARTICLES){titre_mot}>
<BOUCLE_doc(DOCUMENTS){id_article}{par hasard}{doublons}{0,1}>
#LOGO_DOCUMENT
</BOUCLE_doc>
</BOUCLE_carre_aleatoire>

Et mes 2 problèmes :
1/ A chaque fois que le cache se recharge automatiquement, il me répète toujours la même image (il ne choisit qu’une image aléatoire) : cf http://zinsou.aarts.org/?lang=fr
2/ Lorsque je recharge le cache manuellement, il me met des images au hasard, mais certaines images sont malgré tout répétées : cf http://zinsou.aarts.org/?var_mode=calcul

Comment faire pour que les images aléatoires ne se répètent jamais ?
Notez que j’ai autant d’images aléatoires qu’il y a d’espaces nécessaires, et que je compte en avoir plus qu’il n’en faut.

Note : J’ai le même problème avec les rectangles, c’est d’ailleurs le même code qui est appelé :

Pourriez-vous m’aider svp ?
Grand merci !


Cédric PROTIERE
Tél : +33 6 34 24 57 69
http://cedric.protiere.com

[(#INCLURE{fond=inc-logo}{titre_mot=LogoAleatoireCarre}{doublons}{env})] [(#INCLURE{fond=inc-logo}{titre_mot=LogoAleatoireRectangle}{doublons}{env})]

bonjour,
ta boucle _doc semble réagir normalement puisque tu lui demandes « au hasard » sur 1 seul doc… {0,1}

tes #INCLURE répétés ne permettent pas de gérer les doublons entre eux et avec la page appelante (sommaire.html en l’occurrence)
essaie de faire une seule boucle et un seul INCLURE dans ta page et ça devrait marcher

Cedric Protiere a écrit :

Bonjour, et merci pour la réponse

Malheureusement, je ne vois pas comment faire un seul appel, ni pourquoi mon appel ne se fait « au hasard » que sur un doc

D’ailleurs, le comportement n’est pas le même lorsque je recharge manuellement le cache par rapport à un chargement automatique

  • rechargement automatique (une fois le cache spip expiré) : toutes les images sont les mêmes
  • rechargement manuel : images réellement aléatoires, mais avec doublons

De plus, ne serait ce que pour suivre ton conseil et vérifier, je ne sais pas comment modifier mon code, que je donne ci-dessous.
En effet, comment encadrer ma table d’une boucle englobante qui aurait la connaissance de l’ensemble des documents de mes articles ayant les mots clés LogoAleatoireCarre et LogoAleatoireRectangle alors que d’une part je veux différencier carre et rectangle ; et d’autre part je veux différencier les articles d’images aléatoires des rubriques vers lesquelles je veux faire un lien ?

J’espère que je me fais comprendre, je ne me sens pas très clair pour le coup… Le code clarifiera peut être les choses :

[(#INCLURE{fond=inc-td-carre}{lang}{titre_mot=1})] [(#INCLURE{fond=inc-td-gros-carre}{lang}{titre_mot=2})] [(#INCLURE{fond=inc-td-carre}{lang}{titre_mot=3})] [(#INCLURE{fond=inc-td-carre}{lang}{titre_mot=4})] [(#INCLURE{fond=inc-td-carre}{lang}{titre_mot=5})] [(#INCLURE{fond=inc-td-rectangle}{lang}{titre_mot=6})] [(#INCLURE{fond=inc-td-carre}{lang}{titre_mot=7})]
[(#LOGO_SITE_SPIP||image_reduire{300,100}) ]  [(#INCLURE{fond=inc-logo}{titre_mot=LogoAleatoireCarre}{doublons}{env})]
[(#INCLURE{fond=inc-logo}{titre_mot=LogoAleatoireCarre}{doublons}{env})][(#INCLURE{fond=inc-logo}{titre_mot=LogoAleatoireCarre}{doublons}{env})] [(#INCLURE{fond=inc-logo}{titre_mot=LogoAleatoireCarre}{doublons}{env})] [(#INCLURE{fond=inc-logo}{titre_mot=LogoAleatoireCarre}{doublons}{env})]
[(#INCLURE{fond=inc-logo}{titre_mot=LogoAleatoireCarre}{doublons}{env})] [(#INCLURE{fond=inc-logo}{titre_mot=LogoAleatoireRectangle}{doublons}{env})][(#INCLURE{fond=inc-logo}{titre_mot=LogoAleatoireCarre}{doublons}{env})]
[(#INCLURE{fond=inc-logo}{titre_mot=LogoAleatoireRectangle}{doublons}{env})][(#INCLURE{fond=inc-logo}{titre_mot=LogoAleatoireCarre}{doublons}{env})] [(#INCLURE{fond=inc-logo}{titre_mot=LogoAleatoireCarre}{doublons}{env})]
[(#INCLURE{fond=inc-logo}{titre_mot=LogoAleatoireCarre}{doublons}{env})] [(#INCLURE{fond=inc-logo}{titre_mot=LogoAleatoireCarre}{doublons}{env})] [(#INCLURE{fond=inc-logo}{titre_mot=LogoAleatoireCarre}{doublons}{env})] [(#INCLURE{fond=inc-logo}{titre_mot=LogoAleatoireCarre}{doublons}{env})] [(#INCLURE{fond=inc-logo}{titre_mot=LogoAleatoireCarre}{doublons}{env})] [(#INCLURE{fond=inc-logo}{titre_mot=LogoAleatoireCarre}{doublons}{env})]

inc-td-carre.html ressemble à ça :

<BOUCLE_carre(RUBRIQUES){lang}{type_mot=PositionAccueil}{titre_mot}>

les autres inc-td-* sont quasiment identiques à un « colspan=2 » ou un « colspan=2 rowspan=2 » près

Merci pour votre aide
Cédric

2009/9/8 stef dn <esse@free.fr>

bonjour,
ta boucle _doc semble réagir normalement puisque tu lui demandes « au hasard » sur 1 seul doc… {0,1}

tes #INCLURE répétés ne permettent pas de gérer les doublons entre eux et avec la page appelante (sommaire.html en l’occurrence)
essaie de faire une seule boucle et un seul INCLURE dans ta page et ça devrait marcher


Stéphanie

Cedric Protiere a écrit :

Bonjour

Je rencontre 2 problèmes dans la mise en place d’images aléatoires pour la page d’accueil d’un site web : http://zinsou.aarts.org

Les petites images sont aléatoires, je vais chercher chacune d’elles {par hasard}{doublons} parmi les documents d’un article avec le code suivant dans une

:

L’article contenant les images en pièces jointes est déterminé par le mot clé LogoAleatoireCarre du groupe PositionGrilleSommaire

Voici le code de inc-logo.html :

<BOUCLE_carre_aleatoire(ARTICLES){titre_mot}>
<BOUCLE_doc(DOCUMENTS){id_article}{par hasard}{doublons}{0,1}>
#LOGO_DOCUMENT
</BOUCLE_doc>
</BOUCLE_carre_aleatoire>

Et mes 2 problèmes :
1/ A chaque fois que le cache se recharge automatiquement, il me répète toujours la même image (il ne choisit qu’une image aléatoire) : cf http://zinsou.aarts.org/?lang=fr
2/ Lorsque je recharge le cache manuellement, il me met des images au hasard, mais certaines images sont malgré tout répétées : cf http://zinsou.aarts.org/?var_mode=calcul

Comment faire pour que les images aléatoires ne se répètent jamais ?
Notez que j’ai autant d’images aléatoires qu’il y a d’espaces nécessaires, et que je compte en avoir plus qu’il n’en faut.

Note : J’ai le même problème avec les rectangles, c’est d’ailleurs le même code qui est appelé :

Pourriez-vous m’aider svp ?
Grand merci !


Cédric PROTIERE
Tél : +33 6 34 24 57 69
http://cedric.protiere.com


Cédric PROTIERE
Tél : +33 6 34 24 57 69
http://cedric.protiere.com

[(#INCLURE{fond=inc-logo}{titre_mot=LogoAleatoireCarre}{doublons}{env})] [(#INCLURE{fond=inc-logo}{titre_mot=LogoAleatoireRectangle}{doublons}{env})]

Cedric Protiere a écrit :

Bonjour, et merci pour la réponse

Malheureusement, je ne vois pas comment faire un seul appel, ni pourquoi mon appel ne se fait « au hasard » que sur un doc

la boucle « _doc » a pour critère {0,1}, cela limite donc les résultats à 1 et comme les doublons ne sont pas gérés d’#INCLURE à #INCLURE (ou de #MODELE à #MODELE, etc.) le hasard dans les images retournées ne fonctionne pas de manière optimale
et j’ai eu aussi un souci de doublons entre modèles et j’ai dû abandonné un des modèles pour pouvoir les gérer. J’ai envoyé un message à la liste expliquant comment j’ai fait : le code de ta page est très répétitif, tu peux certainement le « factoriser » : connais-tu la balise #COMPTEUR_BOUCLE ? et (depuis ) en comptant les itérations de boucle, tu sais quand appeler les images carrées, rectangles ou les inc-td* mais d’une façon plus générale, tu pourrais essayer de traiter ta compo de page sans tableau, tout en CSS vu que tu connais les dimensions des images et leur position, tu n’aurais éventuellement que des classes à appliquer selon compteur_boucle et ton code s’en verrait allégé – Stéphanie