Aide - Recherche - Membres - Calendrier
Version complète : Galerie d'img gérée par xml
Forum Développeur - Administration serveur, programmation et base de données > Programmation > XML et XSL
sephoria
bonjour,

j'aimerais faire une galerie d'images gérée par xml, pour pouvoir gérer toutes mes images uniquement par ce fichier.
Je m'explique, j'ai un fichier xml du type :
CODE

<imgList>
   <img>
    <miniature>http://monadresse.fr/galerie/img/mini/image_mini.jpg</miniature>
    <big>http://monadresse.fr/galerie/img/image.jpg</big>
    <name>belle mere en vacance</name>
   </img>
....
</imglist>

... et dans ma page je voudrais inserer un script en php me permettant d'afficher toutes les miniatures les unes à la suite des autres (séparer par un espace), toutes pointant sur leur image en grand format, avec comme "intitulé" de chaque miniatures la variable "name"...
Lien pour chaque miniature du type :
CODE
<a href="#" onClick="window.open('$big', '$name', toolbar=no, menubar=no, location=no, resizable=no, scrollbars=no, status=no')"><img><?php print "$miniature"; ?></img></a>


Je n'y connais pas grand chose en php je ne sais pas comment m'y prendre pour créer un code simple qui permette d'afficher toutes les miniatures de ce fichiers les unes à la suite des autres avec ce type de liens, comment pointer/lire sur ce fichier xml.

Est-ce que quelqu'un pourrait m'aider a réaliser ceci s'il vous plait ?
merci
Antoine
Tu vas faire du php 4 ou du php 5 ?
sephoria
euh... ca change quoi ? icon_redface.gif Je ferais celui qui marche bien ^^
sephoria
En fait faire quelque chose du genre :
CODE

<?php
$imgList = simplexml_load_file('images.xml');
foreach ($imgList->miniature as $miniature) {
  print "\n <a href=\"#\" onClick=\"window.open('$big', '$name', toolbar=no, menubar=no, location=no, resizable=no, scrollbars=no, status=no')\"><img>print ".$miniature";\"</img></a>\n";
   }
  }
?>


(oui, il faut juste y voir l'idée que j'ai... parce que c'est très certainement faux icon_confused.gif...)
Antoine
CITATION(sephoria @ Jan 1 2007, 09:40 PM) *

euh... ca change quoi ? icon_redface.gif Je ferais celui qui marche bien ^^

Ca change qu'en PHP5, tu peux utiliser simpleXML et pas en PHP4.

> http://dreamweaver.media-box.net/index.php?showtopic=14552
sephoria
merci beaucoup pour le liens ! je vais me pencher la dessus !
sephoria
Donc, j'ai fait ce code :

CODE
<sigList>

   <sig>
    <miniature>chemin.../creanet/sig/mini/rayzen_th.jpg</miniature>
    <big>chemin.../creanet/sig/rayzen.jpg</big>
    <name>Rayzen</name>
   </sig>
...
</sigList>

CODE
<?php

if (file_exists('scripts/sig.xml')) {
$sigList = simplexml_load_file('scripts/sig.xml'); // ligne 13
} else {
exit('Erreur !.');
}
// définition des variables
$miniature = $siglist->sig->miniature;
$big = $siglist->sig->big;
$name = $siglist->sig->name;
// affichage des miniatures avec le lien vers son grd format
foreach ($sigList->sig as $sig) {
print "\n <a href=\"#\" onClick=\"window.open('.$big', '.$name', toolbar=no, menubar=no, location=no, resizable=no, scrollbars=no, status=no') \><img src='.$miniature'></a>;nbsp\n";;
}
?>

mais une fois uploadé ca m'affiche :

CODE

Fatal error: Call to undefined function: simplexml_load_file() in /mnt/118/sdb/5/1/monsite/pages/test.php on line 13


Il faut définir quelque chose pour que ce soit en php5 ??? je vois pas trop ce qu'il faut que je fasse !
Pourriez vous m'aider s'il vous plait ?!
Antoine
Fais un <? phpinfo(); ?> et vérifie si l'extension simplexml est bien présente smile.gif
sephoria
je suis hébergé chez free.
J'ai fait un <? phpinfo(); ?> mais je ne le trouve pas non !
Je peut m'en sortir comment la ? icon_eek.gif

edit: "PHP Version 4.4.3-dev"
Antoine
CITATION(sephoria @ Jan 2 2007, 05:15 PM) *

je suis hébergé chez free.
J'ai fait un <? phpinfo(); ?> mais je ne le trouve pas non !
Je peut m'en sortir comment la ? icon_eek.gif

edit: "PHP Version 4.4.3-dev"

Dans ce cas, pas de PHP5... Je ne sais pas comment fonctionne la gestion du XML en PHP4. Il faudra attendre d'autres réponses et chercher sur le oueb smile.gif
sephoria
ok... merci pour l'aide en tout cas ! Derniere question, est-ce que c'est possible de faire un equivalent de ce que j'ai fait mais en utilisant la BDD MySql ?
Antoine
Oui c'est possible. Et si la gallerie est assez importante, ce sera plus performant smile.gif
sephoria
Finallement me revoila encore une fois !!!

Donc pour info sous free on peu utiliser php5 en mettant un".htaccess" à la racine du site avec comme code à l'intérieur :
CODE

#HTACCESS
php 1


Je me suis donc repenché sur mon petit script qui dorénavant marche plutôt pas mal pour ce qui est du xml et du php :
CODE
            <?php
                // je vais rechercher et lire le fichier xml
                $sigList = simplexml_load_file('../scripts/logo.xml');
                //affichage des miniatures en ordre décroissant
                foreach ($sigList->sig as $sig) {
                    print "<a href=\"#\" onClick=\"window.open('{$sig->big}', '{$sig->name}', height={$sig->height}, width={$sig->width},'menubar=no,scrollbars=no,statusbar=no,location=no')\">";
                    print "<img src={$sig->miniature} >";
                    print "</a>\n";
                }
            ?>


par contre impossible de faire fonctionner cette fonction javascript ! Est-ce que c'est dû au fait qu'elle est insérée dans du php ou c'est une erreur de ma part ? Parce que j'utilisais cette fonction depuis pas mal de temps sur mon site, qui marchait très bien, mais j'ai l'impression que c'est depuis que je suis sous php5 qu'elle ne fonctionne plus du tout, impossible d'ouvrir une popup !


Antoine
C'est une erreur de ta part. Le langage utilisé coté serveur n'interfère en rien avec le javascript.

Pourrais-tu nous montrer le code affiché (la source HTML, pas la source PHP donc) afin que l'on puisse mieux t'aider.
sephoria
en fait j'ai repris l'ancien code que j'utilisais et l'ai ré-adapté dans le php et maintenant ca marche oO !
mais ca ne marche bien que sous firefox ! Sous IE7 il ne me lance pas le popup pour toutes les miniatures (pour quasiment aucune d'ailleur !)... (dans logo l'avt derniere)
... yéné comprend pas !!

=>page du script

et le "nouveau" script :
CODE
            <?php
                // je vais rechercher et lire le fichier xml
                $sigList = simplexml_load_file('http://belettebox.free.fr/scripts/logo.xml');
                //affichage des miniatures en ordre décroissant
                foreach ($sigList->sig as $sig) {
                    print "<a href=\"#\" onClick=\"window.open('{$sig->big}', '{$sig->name}', 'height={$sig->height}, width={$sig->width}, toolbar=no, menubar=no, location=no, resizable=yes, scrollbars=no, status=no')\">";
                    print "<img src={$sig->miniature} >";
                    print "</a>\n";
                }
            ?>
Antoine
Je suis pas un spécialiste du javascript. Je te conseille d'aller poster ta question dans le forum javascript.
sephoria
ok, merci pour toute l'aide en tout cas !!!
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.