Accueil > > > GALERIE D'IMAGE SIMPLE ET FACILE A INTEGRER A VOS PAGES EXISTANTES
GALERIE D'IMAGE SIMPLE ET FACILE A INTEGRER A VOS PAGES EXISTANTES
Information sur la source
Description
Ce script permet de crrer une galerie d'image. Pour cela il suffit de creer un dossier dans lequel vous placerez vos sous dossier images. Les noms de dossiers devront etre explicite quand au contenu, car nous allons generer une liste de lien hypertext dont les noms seront ceux des sous dossiers. Ensuite, il faudra integrer une page index a vos sous dossier image. Ce fichier index va s'occuper de tout le reste. Verifier combien de fichiers images se trouve dans son dossier, verifier si un dossier tb existe dans le dossier et le creer le cas echéant. Verifier s'il existe pour chaque image sa miniature dans le dossier tb. Ensuite il va afficher un nombre X de miniatures suivant les valeurs contenu dans la page index. Si le dossier contient plus d'image qu'il n'en affiche, il va genrer autant de liens de page que necessaire. Voila... tout simple, avec seulement 2 fichiers a rajouter. Le script s'occupe de tout le reste...
Source
- //premiere page, qui va lister tout les sous-dossiers d'un répertoire choisi
-
- <tr>
- <td colspan="3" id="borduretitre"><h1>Liste des MANGAS disponible</h1></td> //l'id du tableau correspond à mon fichier css, vous pouvez supprimer la mise en forme du tableau
- </tr>
- <tr>
- <td height="21" id="bordure"></td> // idem, vous pouvez supprimer la mise en forme de la cellule
- </tr>
- <tr>
- <td colspan="3" id="tableau" align="center"> // etc
- <?php
- // la fonction qui suit permet de lister les sous répertoires, il est possible de demander a la fonction de lister les sous dossiers, les sous sous dossiers, etc etc, mais ici nous ne le voulons pas
- function filelist ($startdir="./", $searchSubdirs=1, $directoriesonly=0, $maxlevel="all", $level=1) {
- $ignoredDirectory[] = ".";
- $ignoredDirectory[] = "..";
- $ignoredDirectory[] = "_vti_pvt";
- $ignoredDirectory[] = "_vti_cnf";
- $ignoredDirectory[] = "_private";
- global $directorylist;
- if (is_dir($startdir)) {
- if ($dh = opendir($startdir)) {
- while (($file = readdir($dh)) !== false) {
- if (!(array_search($file,$ignoredDirectory) > -1)) {
- if (filetype($startdir . $file) == "dir") {
- $directorylist[$startdir . $file]['dir'] = 1;
- $directorylist[$startdir . $file]['name'] = $file;
- }}}
- closedir($dh);
- }}
- return($directorylist);
- }
- $files = filelist("images/",1,1); // nous demandons de scanner le repertoire images/ les valeurs qui suivent permetent de preciser si on veut compter les sous dossiers, enfin bref, on met tout a 1 ici
- foreach ($files as $list) {
- echo "<a href=?page=images/" . $list['name'] . "/index>" . $list['name'] ."</a><br>"; // on affiche la liste sous forme de lien
- }?>
- </td>
- </tr>
- // fin de la premiere page, vous pouvez l appeler explorermachin.php, notez que vous devrez appeler cette page dans une de vos propres page avec un include et un lien genre <a href=?page=explorermachin>images de machin</a> si vous mettez la page explorermachin dans le meme dossier que votre page qui appelera l explorermanga tout ce passera bien comme ca
-
- //la page index qui va faire tout le boulot, a noter que la page explorermanga va afficher la page index toujour dans votre page dans l'include que vous aurez creer.
-
- <tr>
- <td colspan="3" id="borduretitre"><h1><?php echo str_replace('images/', '',str_replace('/index', '', $_GET['page']));?></h1></td>
- </tr>
- <tr>
- <td height="21" id="bordure"></td>
- </tr>
- <tr>
- <td colspan="3" id="tableau" align="center">
- <table align="center"><tr>
- <?php
- $extensions_autorisees = array('jpg','jpeg','gif','png');
- $totalimg = 0;
- $page = str_replace('index', '', $_GET['page']); // on recupere le chemin du fichier index et on enleve index du nom pour en avoir que le chemin repertoire
- $dir = $page;
- if (is_dir($dir)) {
- if ($dh = opendir($dir)) {
- while (($file = readdir($dh)) !== false) {
- $ext = substr(strrchr($file, "."), 1);
- if (in_array(strtolower($ext),$extensions_autorisees)){
- $totalimg ++;
- }}}
- closedir($dh);
- }
- if (isset($_GET['id'])) // le id permet de faire savoir à la page index quelle page on affiche
- $id = $_GET['id'];
- else
- $id = 1; // si l'id ne contient rien, il s'agit alors de la premiere page
- $lmax = 5; // nombre d'image par ligne
- $hmax = 4; // nombre de colonnes max par page
- $nbpagemax = ceil($totalimg / ($lmax * $hmax)); //on calcul le nombre de page max
- function miniature($picture,$rep,$fext) // début de la fonction qui genere les miniatures
- {
- if (file_exists($rep . "tb/mini_" . $picture) == false) {
- if ($fext == "jpg") { $source = imagecreatefromjpeg($rep . $picture);}
- elseif ($fext == "gif") { $source = imagecreatefromgif($rep . $picture);}
- else { $source = imagecreatefrompng($rep . $picture);}
- $destination = imagecreatetruecolor(200, 150); // On crée la miniature vide
- $largeur_source = imagesx($source);
- $hauteur_source = imagesy($source);
- $largeur_destination = imagesx($destination);
- $hauteur_destination = imagesy($destination);
- imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
- imagejpeg($destination, $rep . 'tb/mini_' . $picture);
- }
- } //fin de la fonction
- $page = str_replace('index', '', $_GET['page']); // on recupere le chemin du fichier index et on enleve index du nom pour en avoir que le chemin repertoire
- $dir = $page;
- if (file_exists($dir . "tb/") == false) { //on verifie ensuite si on possede un dossier tb dans le dossier image
- mkdir ($dir . "tb/", 0777); // si ce nest pas le cas, on creer le dossier
- }
- if ($id > 1)
- $nombreimage = ($id - 1) * ($lmax * $hmax); //si ID est superieur a 1 on reprend le compte de la variable la ou elle en etait
- else
- $nombreimage = 0;
- $verifnbimg = 0;
- $intervalle = 0;
- $nbligne = 0;
- $nbpage = 1;
- // 2 a la variable, ce qui correspond au fichier index et le repertoire tb, attention tout de meme a ne pas avoir de fichier thunbs.db dans
- //le repertoire sous peine de fausser le compte
- if (is_dir($dir)) {
- if ($dh = opendir($dir)) {
- while (($file = readdir($dh)) !== false) {
- $ext = substr(strrchr($file, "."), 1);
- if (in_array(strtolower($ext),$extensions_autorisees)){
- if ($nbligne !== $hmax AND $verifnbimg == $nombreimage AND $nombreimage <= $id * ($lmax * $hmax)) { //on verifie qu on affiche bien les images en fonction de la page
- miniature($file, $dir, $ext); // on verifie avec la fonction que la miniature du fichier existe, sinon on la creer
- //les lignes qui suivent affiches les miniatures, son nom, son extension et sa taille
- if ($ext == "jpg") { $source = imagecreatefromjpeg($dir . $file);}
- elseif ($ext == "gif") { $source = imagecreatefromgif($dir . $file);}
- else { $source = imagecreatefrompng($dir . $file);}
- echo "<td width=170 align=center>
- <a href=" . $dir . $file . " target=_blank><img src=" . $dir . "tb/mini_" . $file . " width=150 height=100 border=0></a>
- <br><img width=30 height=30 src=images/" . $ext . ".png>
- Nom: " . str_replace("." . $ext, '', $file) . "
- <br> taille : " . ceil(filesize($dir . $file)/1000) . " Ko<br>
- " . imagesx($source) . " x " . imagesy($source) . "</td>";
- //fin de l affichage des miniatures
- if ($nombreimage < $totalimg) {
- $nombreimage ++;
- }
- $intervalle ++;
- // cette ligne permet de passer a la colonne suivante apres avoir affiche x images
- if ($intervalle == $lmax) { $nbligne ++; echo "</tr><tr>"; $intervalle = 0; }
- }
- $verifnbimg ++;
- }}
- closedir($dh);
- }
- }
- // maintenant on va creer autant de page qu'il faudra pour afficher toutes les images
- if ($nbpagemax > 1) { // si le nombre d image ne depasse pas le nombre max par page il est inutile d afficher les pages
- echo "<tr><td align=right colspan=" . $lmax .">Pages";
- while ($nbpage < $nbpagemax) {
- echo " <a href=?page=" . $dir ."index&id=" . $nbpage . ">" . $nbpage . ",";
- $nbpage++; }
- echo " <a href=?page=" . $dir ."index&id=" . $nbpage . ">" . $nbpage; } // on repete encore une fois l instruction avant d afficher la
- // derniere page pour eviter de mettre la , a la fin du dernier numero
- echo "<tr><td align=right colspan=" . $lmax .">images : " . $nombreimage . "/" . $totalimg . "</td></tr>";
- //petit plus, on affiche combien d'image est affiché par rapport au nombre max du dossier
- ?>
- </tr></table></td></tr>
-
- //fin de la page index, j'ai essayé de la détailler un peu...
//premiere page, qui va lister tout les sous-dossiers d'un répertoire choisi
<tr>
<td colspan="3" id="borduretitre"><h1>Liste des MANGAS disponible</h1></td> //l'id du tableau correspond à mon fichier css, vous pouvez supprimer la mise en forme du tableau
</tr>
<tr>
<td height="21" id="bordure"></td> // idem, vous pouvez supprimer la mise en forme de la cellule
</tr>
<tr>
<td colspan="3" id="tableau" align="center"> // etc
<?php
// la fonction qui suit permet de lister les sous répertoires, il est possible de demander a la fonction de lister les sous dossiers, les sous sous dossiers, etc etc, mais ici nous ne le voulons pas
function filelist ($startdir="./", $searchSubdirs=1, $directoriesonly=0, $maxlevel="all", $level=1) {
$ignoredDirectory[] = ".";
$ignoredDirectory[] = "..";
$ignoredDirectory[] = "_vti_pvt";
$ignoredDirectory[] = "_vti_cnf";
$ignoredDirectory[] = "_private";
global $directorylist;
if (is_dir($startdir)) {
if ($dh = opendir($startdir)) {
while (($file = readdir($dh)) !== false) {
if (!(array_search($file,$ignoredDirectory) > -1)) {
if (filetype($startdir . $file) == "dir") {
$directorylist[$startdir . $file]['dir'] = 1;
$directorylist[$startdir . $file]['name'] = $file;
}}}
closedir($dh);
}}
return($directorylist);
}
$files = filelist("images/",1,1); // nous demandons de scanner le repertoire images/ les valeurs qui suivent permetent de preciser si on veut compter les sous dossiers, enfin bref, on met tout a 1 ici
foreach ($files as $list) {
echo "<a href=?page=images/" . $list['name'] . "/index>" . $list['name'] ."</a><br>"; // on affiche la liste sous forme de lien
}?>
</td>
</tr>
// fin de la premiere page, vous pouvez l appeler explorermachin.php, notez que vous devrez appeler cette page dans une de vos propres page avec un include et un lien genre <a href=?page=explorermachin>images de machin</a> si vous mettez la page explorermachin dans le meme dossier que votre page qui appelera l explorermanga tout ce passera bien comme ca
//la page index qui va faire tout le boulot, a noter que la page explorermanga va afficher la page index toujour dans votre page dans l'include que vous aurez creer.
<tr>
<td colspan="3" id="borduretitre"><h1><?php echo str_replace('images/', '',str_replace('/index', '', $_GET['page']));?></h1></td>
</tr>
<tr>
<td height="21" id="bordure"></td>
</tr>
<tr>
<td colspan="3" id="tableau" align="center">
<table align="center"><tr>
<?php
$extensions_autorisees = array('jpg','jpeg','gif','png');
$totalimg = 0;
$page = str_replace('index', '', $_GET['page']); // on recupere le chemin du fichier index et on enleve index du nom pour en avoir que le chemin repertoire
$dir = $page;
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
$ext = substr(strrchr($file, "."), 1);
if (in_array(strtolower($ext),$extensions_autorisees)){
$totalimg ++;
}}}
closedir($dh);
}
if (isset($_GET['id'])) // le id permet de faire savoir à la page index quelle page on affiche
$id = $_GET['id'];
else
$id = 1; // si l'id ne contient rien, il s'agit alors de la premiere page
$lmax = 5; // nombre d'image par ligne
$hmax = 4; // nombre de colonnes max par page
$nbpagemax = ceil($totalimg / ($lmax * $hmax)); //on calcul le nombre de page max
function miniature($picture,$rep,$fext) // début de la fonction qui genere les miniatures
{
if (file_exists($rep . "tb/mini_" . $picture) == false) {
if ($fext == "jpg") { $source = imagecreatefromjpeg($rep . $picture);}
elseif ($fext == "gif") { $source = imagecreatefromgif($rep . $picture);}
else { $source = imagecreatefrompng($rep . $picture);}
$destination = imagecreatetruecolor(200, 150); // On crée la miniature vide
$largeur_source = imagesx($source);
$hauteur_source = imagesy($source);
$largeur_destination = imagesx($destination);
$hauteur_destination = imagesy($destination);
imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
imagejpeg($destination, $rep . 'tb/mini_' . $picture);
}
} //fin de la fonction
$page = str_replace('index', '', $_GET['page']); // on recupere le chemin du fichier index et on enleve index du nom pour en avoir que le chemin repertoire
$dir = $page;
if (file_exists($dir . "tb/") == false) { //on verifie ensuite si on possede un dossier tb dans le dossier image
mkdir ($dir . "tb/", 0777); // si ce nest pas le cas, on creer le dossier
}
if ($id > 1)
$nombreimage = ($id - 1) * ($lmax * $hmax); //si ID est superieur a 1 on reprend le compte de la variable la ou elle en etait
else
$nombreimage = 0;
$verifnbimg = 0;
$intervalle = 0;
$nbligne = 0;
$nbpage = 1;
// 2 a la variable, ce qui correspond au fichier index et le repertoire tb, attention tout de meme a ne pas avoir de fichier thunbs.db dans
//le repertoire sous peine de fausser le compte
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
$ext = substr(strrchr($file, "."), 1);
if (in_array(strtolower($ext),$extensions_autorisees)){
if ($nbligne !== $hmax AND $verifnbimg == $nombreimage AND $nombreimage <= $id * ($lmax * $hmax)) { //on verifie qu on affiche bien les images en fonction de la page
miniature($file, $dir, $ext); // on verifie avec la fonction que la miniature du fichier existe, sinon on la creer
//les lignes qui suivent affiches les miniatures, son nom, son extension et sa taille
if ($ext == "jpg") { $source = imagecreatefromjpeg($dir . $file);}
elseif ($ext == "gif") { $source = imagecreatefromgif($dir . $file);}
else { $source = imagecreatefrompng($dir . $file);}
echo "<td width=170 align=center>
<a href=" . $dir . $file . " target=_blank><img src=" . $dir . "tb/mini_" . $file . " width=150 height=100 border=0></a>
<br><img width=30 height=30 src=images/" . $ext . ".png>
Nom: " . str_replace("." . $ext, '', $file) . "
<br> taille : " . ceil(filesize($dir . $file)/1000) . " Ko<br>
" . imagesx($source) . " x " . imagesy($source) . "</td>";
//fin de l affichage des miniatures
if ($nombreimage < $totalimg) {
$nombreimage ++;
}
$intervalle ++;
// cette ligne permet de passer a la colonne suivante apres avoir affiche x images
if ($intervalle == $lmax) { $nbligne ++; echo "</tr><tr>"; $intervalle = 0; }
}
$verifnbimg ++;
}}
closedir($dh);
}
}
// maintenant on va creer autant de page qu'il faudra pour afficher toutes les images
if ($nbpagemax > 1) { // si le nombre d image ne depasse pas le nombre max par page il est inutile d afficher les pages
echo "<tr><td align=right colspan=" . $lmax .">Pages";
while ($nbpage < $nbpagemax) {
echo " <a href=?page=" . $dir ."index&id=" . $nbpage . ">" . $nbpage . ",";
$nbpage++; }
echo " <a href=?page=" . $dir ."index&id=" . $nbpage . ">" . $nbpage; } // on repete encore une fois l instruction avant d afficher la
// derniere page pour eviter de mettre la , a la fin du dernier numero
echo "<tr><td align=right colspan=" . $lmax .">images : " . $nombreimage . "/" . $totalimg . "</td></tr>";
//petit plus, on affiche combien d'image est affiché par rapport au nombre max du dossier
?>
</tr></table></td></tr>
//fin de la page index, j'ai essayé de la détailler un peu...
Conclusion
FONCTIONNEMENT: Je vais essayer de faire simple. Prenez une page de votre site dans lequel vous voulez afficher votre galerie d'image. Imagions que vous ayez un cadre dans lequel vous voulez afficher la galerie. Dans le cadre il faudra y entrer votre include. vous pouvez directement afficher la page explorermanga, ou bien utiliser le cadre pour afficher diverses autres pages, comme vos news, etcetc... Au quel cas il faudra alors creer un lien dans votre page pour appeler l'explorateur.
Par defaut, mettez vos images dans un dossier images/ que vous mettrez dans le dossier qui contient votre page et la page de l'explorateur. (j'appel ca un explorateur a tord car il permet seulement de lister les sous repertoires du dossier images)
Dans chaque sous dossier que vous mettrez, ajouter une page index. Qu'importe le nom du sous répertoire, et qu'importe le nombre, copiez collez simplement la page index dans chaque sous répertoire. Pour les plus débutants (comme moi, je mettrais un exemple dans le zip)
Bug connu: Aucun à ma connaissance, simplement, pour les noms d'image, ne mettez pas d'espace dans vos noms, si vous mettez des images du style: DBZ 01.jpg vous aurez des problemes, mettez DBZ01.jpg Si vous remplacez vos images en gardant le nom de l'image remplacé, les miniatures ne seront pas remplacer. Dans le doute, supprimez simplement le répertoire TB dans le dossier image modifié.
Historique
- 31 mai 2007 19:57:09 :
- Archive modifié pour que tout fonctionne sans rien toucher aux pages ni aux codes. Rajout de 3 images pour les extensions.
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
galerie photo [ par SalahDN25 ]
Salut tous le monde,je voudrais réaliser une galerie photos dans une page qui contien une table à deux colonnes: ma vision est de faire defiler vertic
faire une bouclze sur un fichier contenant des photo et les redimmensionner [ par hannao ]
salut à tous, voilà j'ai un petit code qui redimensionne une photo (contenu dans un dossier) à la fois j'aimerais pouvoir faire une boucle dans le fic
galerie photo [ par didine6 ]
Bonjour,Cela fait quelques jours que je cherche un script avec une galerie photo où seul l'administrateur peut déposer un commentaire.J'ai parcouru to
galerie photo [ par maxxou56 ]
Je souhaiterais réalisé un site internet avec une galerie photo, mais je suis un peu bloquer sur le code étant donné que je nai que très peu de basees
Vérifier si une photo est reliée à une annonce ou non [ par ines57 ]
Bonjour,Toujours pour un portail immobilier, je dois faire une vérification pour savoir si lorsqu'une annonce a été ajoutée, une photo a été ajoutée a
Pb upload php [ par ninho44 ]
Bonjour, voila j'ai un petit probleme pour uploader une image et c'est la 1ere fois que je fais ça...je suis un peu perdu.EN fait, je ne vois pas pour
création d'un cadre transparent par dessus une image uploader [ par foxprox ]
Bonjour à tous, je viens vers vous à la recherche d'un peu d'aide. Mon employeur aimerait que sur son site, l'internaute puisse uploader une photo
Petit probleme dans ma galerie d'image aideeee svp [ par marouanemarouane ]
Bonsoirrrr , j'ai besoin d'un petit aide svpppj'ai creé une petite galerie d'image avec une boucle...mais ça m'affiche toute les images dans une seule
comment faire une galerie d'image [ par Malamute7 ]
bonjour voici mon code Photographies de la communes <?php $compteur=0; // connection au serveur
Upload de fichier php [ par paulito47 ]
Je réalise un script php qui génère un formulaire qui permet la collecte des informations nécessaires pour l'ajout d'une photo (titre, description) et
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
HTML VERS PDFHTML VERS PDF par spike911
Cliquez pour lire la suite par spike911
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|