Développer avec RBS Change : [Résolu] Galerie d'images : grande image change au clic d'une petite

  • 62093.1

    04/07/2012 15:30


    jbarnouin
    Rang : Membre
    Bonjour,

    J'ai repris le bloc de la liste d'images et ajouté une grande image en haut. Je voudrais que les champs src de l'image et href du lien englobant récupèrent le champ src de la petite image cliquée.

    Ma méthode javascript pour récupérer le champ src fonctionne :
    function changemedia(src){
       document.getElementById("mainvisual").getElementsByTagName("img")[0].src = src;
       document.getElementById("mainvisual").href = src;
    }

    Voici un extrait de mon template :
    <a id="mainvisual" change:link="document firstimage">
        <img change:media="document firstimage; format images/getFormat"/>
    </a>
    
    <ul id="gallery">
        <li tal:repeat="image images" style="display:inline-block">
            <div tal:condition="image/isValid">
    	   <img change:media="document image; format imageConf/getFormat; max-width imageConf/getCustomWidth; max-height imageConf/getCustomHeight;">
    	   <br/>
    	   <p>${image/getTitle}</p>
    	</div>
        </li>
    </ul>

    C'est d'associer cette fonction à chaque image de façon dynamique qui me pose problème.

    Après avoir essayé de plusieurs manières, je me demande :
    • peut-on ajouter un champ onlick sur l'image au moment de sa génération (ce qui permet de récupérer directement le champ src via "this.src") ?
    • di pas sur l'image directement, y a-t-il moyen de récupérer un indice qui garde une valeur propre pour chaque image (à partir d'un indice qui s'incrémenterait dans la boucle de génération de la galerie ?) ?
    • est-il possible de mettre le champ onclick sur un lien englobant (donc défini avant l'image) ?

    Je travaille sur la version 3.6.1 - eCommerce Core.

    Merci d'avance,

    Édité par Jean-Michel 05/07/2012 09:34

  • 62093.2 en réponse à 62093.1 écrit par jbarnouin

    04/07/2012 18:11


    jbarnouin
    Rang : Membre
    J'ai trouvé : il suffisait d'ajouter le champ onclick dans les paramètres de change:media :/

    Mon résultat :
    <img change:media="document image; ... ; onclick 'changemedia(this.src)'"/>
  • 62093.3 en réponse à 62093.1 écrit par jbarnouin

    05/07/2012 09:02


    Gaël Port
    Titre : Développeur RBS Change
    Rang : Expert
    Bonjour,
    jbarnouin a dit :
    y a-t-il moyen de récupérer un indice qui garde une valeur propre pour chaque image (à partir d'un indice qui s'incrémenterait dans la boucle de génération de la galerie ?) ?
    Lors de l'utilisation d'un tal:repeat comme c'est le cas ici, il y a pas mal de valeurs que l'on peut récupérer. Cf la doc de PHPTAL.
 
Merci de prendre connaissance et de respecter les règles des forums.
 
1386 membres
Aucun membre connecté