Forum CMS Made Simple FR
[Résolu]Afficher une seule vignette de galerie pour lancer la ligthbox - Version imprimable

+- Forum CMS Made Simple FR (https://forum.cmsmadesimple.fr)
+-- Forum : Général (https://forum.cmsmadesimple.fr/forum-3.html)
+--- Forum : Modules, Tags (https://forum.cmsmadesimple.fr/forum-14.html)
+--- Sujet : [Résolu]Afficher une seule vignette de galerie pour lancer la ligthbox (/thread-2672.html)



[Résolu]Afficher une seule vignette de galerie pour lancer la ligthbox - ratanas - 22/03/2013

Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.4
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonsoir,

Je suis à la recherche d'une astuce ou balise qui me permettrait de mettre une image et en cliquant dessus, d'afficher la ligthbox avec les autres images qui suivent. Pour le moment, j'arrive à afficher un répertoire (ex. {Gallery dir="atelier"}) mais pour n'afficher qu'une vignette pas possible. Je veux qu'en cliquant dessus, j'ai aussitôt la lightbox.
Merci pour votre aide.
Ratanas


[Résolu]Afficher une seule vignette de galerie pour lancer la ligthbox - Jean le Chauve - 22/03/2013

Sans avoir testé (code de Lightbox original) :
Code :
{foreach from=$images item=image name=foo}
    <div class="img">
    {if $image->isdir}
        <a href="{$image->file}" title="{$image->titlename}"><img src="{$image->thumb|escape:'url'|replace:'%2F':'/'}" alt="{$image->titlename}" /></a><br />
        {$image->titlename}
    {else}
   <a href="{$image->file|escape:'url'|replace:'%2F':'/'}" title="{$image->titlename}" rel="lightbox[gallery]">{if $smarty.foreach.foo.first}<img src="{$image->thumb|escape:'url'|replace:'%2F':'/'}" alt="{$image->titlename}" />{/if}</a>
    {/if}
    </div>
{/foreach}
Principe : ajout de name=foo au foreach pour permettre d'utiliser $smarty.foreach.foo.first qui est le premier élément de la boucle (http://www.smarty.net/docsv2/fr/language.function.foreach.tpl). Tu pourrais également remanier le code pour qu'il corresponde à smarty3 : http://www.smarty.net/docs/en/language.function.foreach.tpl#foreach.property.first).
La vignette ($image->thumb) ne devrait donc apparaître que pour le premier élément.


[Résolu]Afficher une seule vignette de galerie pour lancer la ligthbox - jissey - 22/03/2013

Salut à tous,
astuce smarty 3 :
la syntaxe $smarty.foreach.foo.first peut être remplacée par : $image@first

et pendant qu'on y est :
{foreach from=$images item=image name=foo} par {foreach $images as $image} = saint axe PHP
http://www.smarty.net/docs/en/language.function.foreach.tpl


[Résolu]Afficher une seule vignette de galerie pour lancer la ligthbox - Jean le Chauve - 22/03/2013

Tu n'as pas lu jusqu'au bout Wink
Citation :Tu pourrais également remanier le code pour qu'il corresponde à smarty3 : http://www.smarty.net/docs/en/language.function.foreach.tpl#foreach.property.first.



[Résolu]Afficher une seule vignette de galerie pour lancer la ligthbox - jissey - 22/03/2013

ha! Milles zexcuses votre Altesse!
Je suis allé trop vite en besogne, j'en suis mari! Smile


[Résolu]Afficher une seule vignette de galerie pour lancer la ligthbox - ratanas - 22/03/2013

Merci pour cet extrait de code, je vais tester au plus vite et je vous tiens au courant.
En tout cas merci pour votre réactivité.


[Résolu]Afficher une seule vignette de galerie pour lancer la ligthbox - ratanas - 27/03/2013

Nickel, merci pour cette boucle. C'est pile poil ce dont j'avais besoin.
Avez-vous pendant que j'y suis des références de bouquins sur CMSMS en français ?
Je suppose que "$smarty.foreach.foo.first" cela ne s'invente pas et qu'il y a un livre ou autre de référence ?
Encore merci pour votre aide.


[Résolu]Afficher une seule vignette de galerie pour lancer la ligthbox - Jean le Chauve - 27/03/2013

Content que ça fonctionne.
J'avais pris la peine de mettre un lien vers la page la documentation smarty dans les posts ci-dessus, il te suffit de cliquer...
Jean le Chauve a écrit :Principe : ajout de name=foo au foreach pour permettre d'utiliser $smarty.foreach.foo.first qui est le premier élément de la boucle (http://www.smarty.net/docsv2/fr/language.function.foreach.tpl). Tu pourrais également remanier le code pour qu'il corresponde à smarty3 : http://www.smarty.net/docs/en/language.function.foreach.tpl#foreach.property.first).
La vignette ($image->thumb) ne devrait donc apparaître que pour le premier élément.

Il existe un très bon bouquin (ebook...) sorti aux environs de la 1.10.3, mais en anglais : http://www.packtpub.com/cms-made-simple-development-cookbook/book
N'oublie pas le petit [Résolu] en modifiant le titre de ton premier post Wink