Soyez le premier à donner votre avis sur cette source.
Snippet vu 62 408 fois - Téléchargée 2 453 fois
<div align='center' style='width:550px; margin-left:auto; margin-right:auto;'> <?php if (function_exists('ini_set')) ini_set("memory_limit",'64M'); // la création de vignettes peut-être lourde... // VOUS POUVEZ MODIFIER CETTE PARTIE SELON VOS PRÉFÉRENCES: $folder = 'img'; // Dossier contenant les images $mini = 'mini'; // Dossier contenant les miniatures $nbimg = 20; // Nombre d'images par page $hautmini = 75; // Hauteur des miniatures $largmini = 100; // Largeur des miniatures $larg = 600; // Largeur de l'image if (!isset($_GET['galerie']) AND !isset($_GET['img'])) // Si on ne cherche pas à afficher une galerie ni une image particulière... { $i = 0; echo '<h3>Galeries</h3><table><tr>'; $files = scandir($folder); if ($files) { @$max = count($files); $i = 0; $j = 0; while($i < $max) { if ($files[$i] != '.' AND $files[$i] != '..' AND $files[$i] != 'Thumbs.db' AND $files[$i] != 'perso')// par exemple, on affichera pas le contenu du dossier "perso" { $thumb = array(); $thumb = scandir($folder . '/' . $files[$i]); echo '<td align="center">'; echo '<a href="galerie.php?galerie=' . $folder . '/' . $files[$i] . '" target="_self">'; echo '<img src="' . $folder . '/' . $files[$i] . '/' . $mini . '/' . $thumb[2] . '" width="130" height="100" border="0" alt="' . $thumb[2] . '" />'; echo '</a><br /><a href="galerie.php?galerie=' . $files[$i] . '/' . $files[$i] . '" target="_self">' . $files[$i] . '</a>'; echo '</td>'; $j++; // Pour afficher 4 images par lignes. if (($j/4) == 1) { echo '</tr><tr>'; $j = 0; } } $i++; } } echo '</tr></table><br /><br />'; } elseif (!isset($_GET['img'])) // Si on veut afficher une galerie... { $galerie = str_replace($folder . '/', '', $_GET['galerie']); // On extrait le nom de la galerie echo '<h3>Galerie - ' . $galerie . '</h3>Cliquez sur une image pour la voir en plus grand.<br />'; if (isset($_GET['id'])) // id = page affichée $id = $_GET['id']; else $id = 1; $glop = $id * $nbimg; // Pour la pagination... $glup = ($id-1) * $nbimg; $row = 0; $files = scandir($folder . '/' . $galerie); // On "scanne" la galerie... if ($files) { @$max = count($files); // On compte le nombre de fichiers présents dans le dossier, pour la boucle qui suit. $i = 0; while($i < $max) { if ($files[$i] != '.' AND $files[$i] != '..' AND $files[$i] != 'Thumbs.db' AND $files[$i] != 'mini' AND $files[$i] != 'perso')// par exemple, on affichera pas le contenu du dossier "perso" { $row = $row+1; if ($row<=$glop && $row>$glup) // affiche que les images comprises entre [(id -1) * nb images] et [id*nb images] { if (!file_exists($folder . '/' . $galerie . '/' . $mini . '/' . $files[$i])) // vérifie si une miniature est déjà présente, auquel cas, pas besoin d'en recréer { if (!file_exists($folder . '/' . $galerie . '/' . $mini)) // Si le dossier des miniatures n'existe pas, on le crée. @mkdir ($folder . '/' . $galerie . '/' . $mini, 0755); $Image = $folder . '/' . $galerie . '/' . $files[$i]; $ratio = 100; // création de la miniature $src = imagecreatefromjpeg($Image); $size = getimagesize($Image); if ($size[0] > $size[1]) { $im = imagecreatetruecolor(round(($ratio/$size[1])*$size[0]), $ratio); imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$size[1])*$size[0]),$ratio, $size[0], $size[1]); } else { $im = imagecreatetruecolor($ratio, round(($ratio/$size[0])*$size[1])); imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($size[1]*($ratio/$size[0])), $size[0], $size[1]); } $miniature = $folder . '/' . $galerie . '/' . $mini . '/' . $files[$i]; imagejpeg($im, $miniature); chmod($miniature,0755); // CHMOD des vignettes crées } $nom = substr($files[$i], 0, strlen($Fichier) - 4); // On extrait le nom de l'image de son nom complet echo '<a href="galerie.php?img=' . $folder . '/' . $galerie . '/' . $files[$i] . '" target="_self">'; echo '<img src="' . $folder . '/' . $galerie . '/' . $mini . '/' . $files[$i] . '" border="0" width="' . $largmini . '" height=' . $hautmini . '" alt="' . $nom. '" onmouseover="document.getElementById(\'titreimg\').style.visibility=\'visible\'; document.getElementById(\'titreimg\').innerHTML = \'' . $nom . '\';" onmouseout="document.getElementById(\'titreimg\').innerHTML = \'<br />\';" /></a>'; } } $i++; } } echo '<br /><div id="titreimg"><br /></div>'; if ($row == 1) echo 'Il y a ' . $row . ' image enregistrée'; if ($row == 0) echo 'Il n\'y a aucune image enregistrée'; if($row != 1 AND $row != 0) echo 'Il y a '.$row.' images enregistrées'; echo '<br /><br />'; if ($id > 1) // Affichage des N* de page echo '<a href="galerie.php?id=' . ($id - 1) . '&galerie=' . $galerie . '">[précédent]</a> - '; else echo '[précédent] - '; for ($i=1; $i <= ceil($row/$nbimg); $i++) { if ($i != $id) echo '<a href="galerie.php?id=' . $i . '&galerie=' . $galerie . '">' . $i . '</a> '; else echo '[' . $i . '] '; } if ($id*$nbimg < $row) echo '- <a href="galerie.php?id=' . ($id + 1) . '&galerie=' . $galerie . '">[suivant]</a>'; else echo '- [suivant]'; echo '<br /><br /><a href="galerie.php">Retour aux galeries</a><br /></div>'; } else { echo '<br />'; $img = $_GET['img']; $nom = strstr($img, '/'); $nom = strstr(substr($nom, 1, strlen($nom)), '/'); // Obtenir le nom de l'image: c'est bof, mais j'ai pas trouvé plus simple ;) $nom = substr($nom, 1, strlen($nom) - 5); echo '<a href="' . $img . '" target="_blank" border="0"><img src="' . $img . '" alt="' . $nom . '" width="' . $larg . '" border="0" alt="' . $nom . '"></a>'; echo $nom . '<br /><br />Les images sont redimensionnées. Pour les voir avec leur taille réelle, cliquez dessus.'; echo '<br /><br /><a href="javascript:history.back()"><b>Retour</b></a>'; } ?> </div>
Ce partiel de code devrait :
echo '';
Devrais ecrire de la manière suivante :
echo '';
Apres le code est parfait pour une bonne utilisation…. Merci pour le code mon ami.
J'ai du rajouter un parametre pour le GET (ligne 38 et 40) :
Car ma galerie qui s'appelle noce est dans ma page galerie est que les différentes pages des galeries s'ouvrent dynamiquement.
Du coup je ne sais pas si c'est pas ça qui pose soucis
Warning: scandir(galerie/noce/1) [function.scandir]: failed to open dir: No such file or directory in C:\wamp\www\etma\include\noce2.php on line 76
Warning: scandir() [function.scandir]: (errno 2): No such file or directory in C:\wamp\www\etma\include\noce2.php on line 76
La ligne 76 c'est : $files = scandir($folder . '/' . $galerie); // On "scanne" la galerie...
C'est bizarre mais quand je regarde l'adresse que ça me genere ça donne : galerie/noce/1 alors que mes photos sont dans galerie/noce
et que j'ai specifié comme $folder : galerie/noce
et comme $mini: galerie/noce/thumbs
y'a un soucis quelque part, il ne me trouve pas les images.
Un ptit coup de main svp ?
Merci pour ton code source...c'est super et facile a comprendre...=)
Sinon j'ai également le probleme du scandir...Il me dit:
Warning: scandir(img/galerie_photo/charmey.jpg) [function.scandir]: failed to open dir:
Et ceci pour toutes les images de mon dossier spécifié...
J'ai contrôler le nom des dossier et ils sont corrects...
Peux-tu m'aider stp...Merci
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.