THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour,

Je cherche a mettre un tag spécial si l'élément est le premier dans une boucle.

Par exempe, je voudrais afficher plusieures images sur une page mais taiter differement la première d'entre elles.
Le seul moyen que j'ai trouvé c'est de faire 2 boucles: une pour afficher la première image et l'autre pour afficher les autres.

<THELIA_IMAGE type="IMAGE" num="1" contenu="#ID" aleatoire="1">
   <a href="#IMAGE" title="" rel="lightbox[dare]"><img src="#IMAGE" width="360" height="161" alt="Gallery" /></a>
</THELIA_IMAGE>
				
<THELIA_IMAGE type="IMAGE" contenu="#ID" >
   <a href="#IMAGE" title="" rel="lightbox[dare]"><img src="#IMAGE" width="360" height="161" alt="Gallery" style="display:none" /></a>
</THELIA_IMAGE>

Le problème c'est que la première image se réécit une seconde fois dans ma 2ème boucle. Alors j'ai pensé imbriquer les 2 boucles et exclure la première image de la 2ème boucle:

<THELIA_IMAGE type="IMAGE" num="1" contenu="#ID" aleatoire="1">
   <a href="#IMAGE" title="" rel="lightbox[dare]"><img src="#IMAGE" width="360" height="161" alt="Gallery" /></a>
   <THELIA_IMAGE type="IMAGE" contenu="#ID" exclusion="#ID">
      <a href="#IMAGE" title="" rel="lightbox[dare]"><img src="#IMAGE" width="360" height="161" alt="Gallery" style="display:none" /></a>
   </THELIA_IMAGE>
</THELIA_IMAGE>

Mais là le problème c'est que je n'ais plus acces à l'id du contenu qui contient mes photos. La boucle image n'as pas le paramètre #CONTENU comme sortie...

Quelqu'un a une solution à cela? Ou une autre manière de faire?

Offline


pour mémoire : les paramètres num, nb, debut et aleatoire concernent les cinq photos que l'on peut ajouter à des rubriques, produits, dossiers, contenus.
Essayez ce modele de boucles qui fonctionne sur mon ordinateur :

<THELIA_img1 type="IMAGE" contenu="#ID" num="1" aleatoire="1">
<THELIA_img2 type="IMAGE" nb="#ID" largeur="480">
<img src="#IMAGE" alt="-" />
</THELIA_img2>
<THELIA_img3 type="IMAGE"  largeur="200" exclusion="#ID">
<img src="#IMAGE" alt="-" />
</THELIA_img3>
</THELIA_img1>

Offline


En fait, c'est plus de 5 photos que l'on peut associer à une rubrique, produit, dossier, contenu !

Offline


Oui et mon prob c'est que ta boucle 3 elle renvoie les images parmis toutes celles de ton site.
Il faudrait donc préciser dans la boucle 3 que je veut les images seulent du contenu X et le problème c'est qu'on a plus access à cet ID de contenu puisqu'on est dans une boucle d'image...

Last edited by copernic67 (16-08-2007 01:25:00)

Offline


Tu peux peut-être te bricoler un truc en rajoutant une ligne dans la fonction boucleimage de boucle.php pour récupérer l'argument de l'id du contenu à l'intérieur de ta boucle:

  après:            if($image->contenu != 0){


tu mets ça:

                    $temp = str_replace("#CONTENU", $contenu, $temp);

et tu recupères ton ID contenu avec #CONTENU

je te dis ça comme ça: j'ai pas testé tes boucles mais j'ai déjà bricolé quelques trucs dans le genre et ça le fait pas mal...
Le seul truc c'est de noter tes mods dans un fichier pour pas être surpris si tu passes à une autre version de Thelia...;)

Last edited by david49 (17-08-2007 11:02:08)

Offline


Effectivement cela devrait fonctionner !

Je viens de constater que la boucle IMAGE renvoie dans la balise #RUBRIQUE l'ID du dossier d'une image de dossier et dans la balise #PRODUIT l'ID du contenu d'une image de contenu !

Bug?

Le code ci-dessous devrait fonctionner mieux que le précédent qui contenait plusieurs erreurs.

<THELIA_img1 type="IMAGE" contenu="#ID" num="1" aleatoire="1">

<THELIA_img2 type="IMAGE" id="#ID" largeur="480">

<div><img src="#IMAGE" alt="-" /></div>

</THELIA_img2>
<div>
<THELIA_img3 type="IMAGE"  contenu="#PRODUIT" largeur="160" exclusion="#ID">
<img src="#IMAGE" alt="-" />
</THELIA_img3>
</div>
</THELIA_img1>

NB : à peine envoyé  mon précédent post, j'ai eu des doutes, mais je suis parti aussitôt en vacances très loin de mon ordinateur et d'un accès internet et je n'ai pas pu ni tester ni corriger mes erreurs.