Salut,
J’avance un peu sur le pb de générer une galerie flash depuis spip.
Je me suis très largement inspiré d’un tutoriel de Praktica.net (merci à eux).
Côté php, je modifie un fichier gallery.xml situé dans le même répertoire que mon gallery.php, c’est à dire à la racine de mon site spip :
<?php mysql_connect("localhost","root",""); mysql_select_db("database"); $id_article = $HTTP_GET_VARS['id_article']; $qr = mysql_query("SELECT spip_documents.* FROM spip_documents,spip_documents_articles WHERE spip_documents.id_document=spip_documents_articles.id_document AND id_article=1"); // là j'ai pris l'exemple d'un article 1 dans lequel il y aurait toutes mes photos attachées // mais l'idéal serait de pouvoir faire : AND id_article = $id_article avec $id_article transmis // depuis flash... mais alors il faut ensuite modifier le fichier xml pour générer un noeud par // article... enfin je voie ça comme ça... $nrows = mysql_num_rows($qr); $rString = ""; for ($i=0; $i < $nrows; $i++) { $row = mysql_fetch_array($qr); $rString .= ""; } $rString .= ""; echo $rString; $nomFichier = "gallery.xml"; $pointeurFichier = fopen($nomFichier, "w+"); fwrite ($pointeurFichier, $rString); fclose ($pointeurFichier); ?>ce qui donne dans mon cas le fichier gallery.xml suivant :
et dans le flash (pour les explications, je suis désolé, mais je suis total brêlon en action script) :
// On load le XML en indiquant quune fois chargé, on execute la fonction startGALLERY
GALLERY_xml = new XML();
GALLERY_xml.onLoad = startGALLERY;
GALLERY_xml.load(« gallery.xml »);
GALLERY_xml.ignoreWhite = true;
// Init la gallery
function startGALLERY(success) {
if (success == true) {
// La racine du XML
rootNode = GALLERY_xml.firstChild;
// Nombre total des noeuds, donc des images
totalGALLERY = rootNode.childNodes.length;
// Pointe sur la première image
firstGALLERYNode = rootNode.firstChild;
currentGALLERYNode = firstGALLERYNode;
showGALLERY(firstGALLERYNode);
}
}
// Fonction qui affiche une image contenu dans ‹ newGALLERYNode ›
function showGALLERY(newGALLERYNode) {
targetClip.show_image(newGALLERYNode.attributes.IMAGE)
}
// Enfin, les deux fonctions qui soccupent des flèches suivant et précédent
// Événement sur la flèche droite pour aller chercher l’image suivante.
next_bouton.onRelease = function() {
// nextSibling descend la structure XML
nextGALLERYNode = currentGALLERYNode.nextSibling;
// Si le Noeud est null, alors c’est la fin de la galerie.
if (nextGALLERYNode == null) {
break;
} else {
// On affiche l’image suivante et on place le pointer XML sur le noeud actuel
showGALLERY(nextGALLERYNode);
currentGALLERYNode = nextGALLERYNode;
}
};
//
// Événement sur la flèche de gauche pour aller chercher l’image précédente.
back_bouton.onRelease = function() {
// previousSibling remonte la structure XML
previousGALLERYNode = currentGALLERYNode.previousSibling;
if (previousGALLERYNode == null) {
break;
} else {
currentGALLERYNode = previousGALLERYNode;
showGALLERY(previousGALLERYNode);
}
};
(j’ai repris bêtement le tutoriel de Praktica, et pour l’instant je sais pas encore comment intégrer les titres mais a priori c’est pas trop compliqué, m’a-t-on expliqué…)
en espérant que ça intéresse du monde pour qu’on puisse s’entraider et régler les quelques petits problèmes qui demeurent …
ci-joint les fichiers…
Against
galerie_xml.ace (8.58 KB)