Bonsoir,
Le Samedi 5 Août 2006 00:51, BoOz a écrit :
Oh, mais ca c'est une mission pour jquery 
Je ne peux pas t'en dire tellement plus ici, mais cherche de ce coté là.
BoOz
Rue des boulets a écrit :
> Bonjour,
> Je cherche à faire défiler automatiquement dans une fenêtre pop-up les
> images d'un album de photos :
>
> <BOUCLE_zoom(DOCUMENTS){id_document}{mode=document}>
>
> [(#FICHIER|image_reduire{720})]<div class="titrerose">[(#TITRE)]</div>
>
> </BOUCLE_zoom>
>
> Quelqu'un aurait-il une idée ?
J'ai bricolé un truc... sans le popup, mais j'ai le défilement...
Dans le /mes_fonctions.php3:
function affiche_image_div($image,$dimmax=400,$commentaire="Sans commentaire")
{
// La première variable est l'objet du filtre.
// Les variables suivantes sont passées ainsi: (#FICHIER|
affiche_image{500,#TITRE})
// Voir Les filtres de SPIP page 266 de SpipDoc_fr_integrale.pdf (et p.275
pour les paramètres)
// et le contenu des fonctions de ecrire/inc_filtres.php3
// Ex.: affdate()
global $compteur;
$compteur++;
$dimimg=getimagesize($image);
if($dimimg[0]>$dimimg[1]){
$largimg=$dimmax;
$hautimg=round($dimimg[1]*$dimmax/$dimimg[0]);
}
else{
$hautimg=$dimmax;
$largimg=round($dimimg[0]*$dimmax/$dimimg[1]);
}
$chaine="<style type='text/css'>#divtmp$compteur{display:none;}</style><div
id='divtmp$compteur'><a href='$image'><img src='$image' width='$largimg'
height='$hautimg' alt='$commentaire' title='$commentaire'
border='0' /></a></div>";
return $chaine;
}
Et j'ai fait une page /squelettes/diaporama.html contenant ceci:
<BOUCLE_article_principal(ARTICLES) {id_article}>
<h1>[(#TITRE)]</h1>
<BOUCLE_zoom(DOCUMENTS){mode=document}>
[(#FICHIER|affiche_image_div{500,#TITRE})]
</BOUCLE_zoom>
</BOUCLE_article_principal>
<script type='text/javascript' language='JavaScript'>
var cpt=0;
function change_div(){
// Tous les DIV d'images étant cachées au départ,
// on saute le premier tour pour ce qui est de cacher...
if(cpt!=0){
// On cache le DIV précédemment affiché:
eval("document.getElementById('divtmp"+cpt+"').style.display='none'");
}
// On teste l'existence du DIV suivant.
// S'il n'existe pas, on boucle en revenant à 1.
suivant=cpt+1;
if(eval("document.getElementById('divtmp"+suivant+"')")){
cpt++;
}
else{
cpt=1;
}
// On affiche l'image suivante:
eval("document.getElementById('divtmp"+cpt+"').style.display='block'");
setTimeout("change_div()",2000);
}
change_div();
</script>
Dans mon test, j'ai appelé le diaporama depuis la
page /squelettes/rubriques.html (celle de dist un peu modifiée) en jouant sur
un mot-clé, le filtre {doublons} et une boucle d'exclusion.
Voici les modifs:
<BOUCLE_articles_exclus(ARTICLES) {id_rubrique} {par titre}
{titre_mot=diaporama} {doublons}></BOUCLE_articles_exclus>
<BOUCLE_articles_recents(ARTICLES) {id_rubrique} {par titre} {doublons}>
<h2><a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|
entites_html)"]>#TITRE</a></h2>
<div class="detail">
[(#DATE|nom_jour)] [(#DATE|affdate)]
<B_auteurs_recents1><:par_auteur:> <BOUCLE_auteurs_recents1(AUTEURS)
{id_article} {", "}>#NOM</BOUCLE_auteurs_recents1>
</div>
<br />
</BOUCLE_articles_recents>
<B_articles_diapo_recents>
<b>Diaporamas:</b> <br />
<BOUCLE_articles_diapo_recents(ARTICLES) {id_rubrique} {par titre}
{titre_mot=diaporama}>
<INCLURE(article_diaporama.php3){id_article}>
</BOUCLE_articles_diapo_recents>
</B_articles_diapo_recents>
Et la page /article_diaporama.php3 contient:
<?php
$fond = "diaporama";
$delais = 24 * 3600;
include ("inc-public.php3");
?>
Cela devra sans doute être adapté... ne serait-ce que parce que ce n'est pas
en popup... et puis parce que je me suis peut-être compliqué la vie (je ne
maitrise pas les boucles et arcanes de SPIP).
Cordialement.
--
Stéphane.