21/10/2010, 17:39:32
je ne vois pas ou tu bloques... surement par ce que j'ai une autre vision du problème
de ton appel JS
ne conserve que le strict minimum :
et tu rajoutes l'autre partie dans ton gabarit de gallery pour donner
déjà rien que ça, ça te permet de jouer sur la composition du JS avec smarty.
ensuite tu veux quoi ? afficher 1 miniature et faire en sorte que le JS affiche le reste ? ben c'est partis... après tout smarty te permet de faire quasi tout ce que tu veux non?
plutôt que d'itérer sur la liste entière des images ($images), fait apparaitre qu'une seule ligne, soit avec un break; soit en appelant le premier élément du tableau $images : "$images[0]->foo;" en PHP, a voir ce que ca donne en smarty + sécurité si pour une raison le tableau ne contiens aucune image...
pour ce qui est du JS, inspires toi de l'exemple que tu nous donnes toi même.
bon il faut changer et ajuster mes idées mais à mon avis c'est loin d'être infaisable !
de ton appel JS
Code :
<script type="text/javascript" src="modules/Gallery/templates/fancybox/jquery.fancybox.pack.js"></script>
<script type="text/javascript" src="modules/Gallery/templates/jquery/jquery.mousewheel.pack.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("a.group").fancybox({
'speedIn': 300,
'speedOut': 300,
'overlayColor': '#000',
'overlayOpacity': 0.7
});
});
</script>
ne conserve que le strict minimum :
Code :
<script type="text/javascript" src="modules/Gallery/templates/fancybox/jquery.fancybox.pack.js"></script>
<script type="text/javascript" src="modules/Gallery/templates/jquery/jquery.mousewheel.pack.js"></script>
et tu rajoutes l'autre partie dans ton gabarit de gallery pour donner
Code :
{literal}
<script type="text/javascript">
$(document).ready(function() {
$("a.group").fancybox({
'speedIn': 300,
'speedOut': 300,
'overlayColor': '#000',
'overlayOpacity': 0.7
});
});
</script>
{/literal}
<div class="gallery">
{foreach from=$images item=image}
<div class="imgs">
<a class="group" href="{$image->file}" title="{$image->title}" rel="gallery"><img src="{$image->thumb}" alt="{$image->title}" /></a>
</div>
{/foreach}
<div class="galleryclear"> </div>
</div>
déjà rien que ça, ça te permet de jouer sur la composition du JS avec smarty.
ensuite tu veux quoi ? afficher 1 miniature et faire en sorte que le JS affiche le reste ? ben c'est partis... après tout smarty te permet de faire quasi tout ce que tu veux non?
plutôt que d'itérer sur la liste entière des images ($images), fait apparaitre qu'une seule ligne, soit avec un break; soit en appelant le premier élément du tableau $images : "$images[0]->foo;" en PHP, a voir ce que ca donne en smarty + sécurité si pour une raison le tableau ne contiens aucune image...
pour ce qui est du JS, inspires toi de l'exemple que tu nous donnes toi même.
Citation :{literal}
<a id="manual2" href="javascript:;" title="">Image gallery</a>
$("#manual2").click(function() {
$.fancybox([
{/literal}
{foreach from=$images item=image}
{*'http://farm5.static.flickr.com/4044/4286199901_33844563eb.jpg', *}
{*'http://farm3.static.flickr.com/2687/4220681515_cc4f42d6b9.jpg', *}
'{$image->file}',
{/foreach}
{literal}
{
'href' : 'http://farm5.static.flickr.com/
4005/4213562882_851e92f326.jpg',
'title' : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit'
}
], {
'padding': 0,
'transitionIn': 'none',
'transitionOut': 'none',
'type' : 'image',
'changeFade' : 0
});
});
{/literal}
bon il faut changer et ajuster mes idées mais à mon avis c'est loin d'être infaisable !