Heartless | bon je sais pas trop comment expliquer mais le répertoire dans lequel on affiche les images est sélectionné via $_GET['truc'] <_< voilà mon script complet : Code :
- <?php
- $titrerub = str_replace("_"," ",$_GET['rub']);
- $titrepage = str_replace("_"," ",$_GET['page']);
- echo '<span class="grand_titre b">'.$titrerub.'</span>'.$hr;
- // --------------------- variables du nombre de fichiers
- $folder = 'img/'.$_GET['rub'].'/'.$_GET['page'].'/'; // adresse du dossier à lister.
- $ext = 'jpg'; // extention des images à compter.
- $subfolders = '0'; // 1 = compter ceux des sous-dossiers / 0 = compter uniquement dans ce dossier.
- $nb_files = 'Cette galerie contient <b>'.count_files($folder, $ext, $subfolders).'</b> '.$titrepage.'. (Classés du plus récent au plus ancien)';
- // Lire la taille des images
- function imgt($imgs){
- $imgt = getimagesize($imgs);
- echo $imgt[0]." x ".$imgt[1];
- }
- // ------------------------------------------------------------------------- //
- // Album photos à partir des images miniatures //
- // ------------------------------------------------------------------------- //
- // Information sur le fonctionnement de ce prog //
- //
- // 1) Mettre les photos 'grand-format' dans un
- // Répertoire (par Exemple : Photos) de votre site Web
- // Les photos sont visibles à l'adresse suivante:
- // http://www.monsite.fr/Photos/
- //
- // 2) Créer un répertoire 'mini' dans 'Photos'
- // accés aux mini-photos à partir de :
- // http://www.monsite.fr/Photos/mini/
- //
- // 4) Générer les mini-photos à partir des photos
- // grand-format et les placer dans le répertoire
- // 'mini' (http://www.monsite.fr/Photos/mini/)
- // Configuration et Définition des variables
- // Titre de votre Album
- $titreAlbum = "---";
- $soustitreAlbum = "---";
-
- // nom du répertoire où se trouve les mini images (répertoire "mini" par défaut)
- $mini = "img/".$_GET['rub']."/".$_GET['page']."/miniatures/"; // (n'oubliez pas le '/' à la fin... :o)
- // Nombre de Photos par ligne (5 par défaut)
- $nbPhotosParLigne = 3;
- // Largeur d'une diapo (100 par défaut)
- $largeurDiapo = 150;
- // Extention des photos ('.jpg' par défaut ou '.gif')
- $extPhotos=".jpg";
- */
- // ------------------------------------------------------------------------- //
- // Début du Programme
- $repertoire = opendir($mini);
- while ($entree = readdir($repertoire))
- {
- if ($entree != "." && $entree != ".." )
- // Attention: Les mini-photos sont détectées qu'avec les
- // extensions ".jpg" et ".gif"
- if (($ExtImg = strtolower(substr($entree, -4))==".jpg" ) ||
- ($ExtImg = strtolower(substr($entree, -4))==".gif" ))
- {
- // Methode pour trier par date
- $tFichiers[] = filemtime($mini.$entree)."+".$entree;
- // NbImages = sizeof($tFichiers);
- }
- }
- closedir($repertoire);
- // ------------------------------------------------------------------------------------ le tri décroissant des dates ! Supprimer le "r" pour trier dans l'ordre croissant.
- rsort($tFichiers);
- // Creation des tableaux synchro 'NomImage' et 'DateImage'
- for ($cpt = 0; $cpt < sizeof($tFichiers); $cpt++)
- {
- // Découpage
- $tVals = explode("+", $tFichiers[$cpt]);
- // génère 2 tableaux synchronisés
- $tImages[] = $tVals[1];
- $tDates[] = "[".date("d m Y",$tVals[0])."]<br />";
- }
- // generation de la partie HTML
- // --------------------------------------------------------------------------------------- fonction du nombre de fichiers
- function count_files($folder, $ext, $subfolders)
- {
- // on rajoute le / à la fin du nom du dossier s'il ne l'est pas
- if(substr($folder, -1) != '/')
- $folder .= '/';
-
- // $ext est un tableau?
- $array = 0;
- if(is_array($ext))
- $array = 1;
- // ouverture du répertoire
- $rep = @opendir($folder);
- if(!$rep)
- return -1;
-
- $nb_files = 0;
- // tant qu'il y a des fichiers
- while($file = readdir($rep))
- {
- // répertoires . et ..
- if($file == '.' || $file == '..')
- continue;
-
- // si c'est un répertoire et qu'on peut le lister
- if(is_dir($folder . $file) && $subfolders)
- // on appelle la fonction
- $nb_files += count_files($folder . $file, $ext, 1);
- // vérification de l'extension avec $array = 0
- else if(!$array && substr($file, -strlen($ext))== $ext)
- $nb_files++;
- // vérification de l'extension avec $array = 1
- else if($array && in_array(substr($file, -strlen($ext)), $ext))
- $nb_files++;
- }
-
- // fermeture du rep
- closedir($rep);
- return $nb_files;
- }
- // ------------------------------------------------------------------------ affichage du nombre de fichiers
- echo $nb_files . $hr.'<br />';
- // ------------------------------------------------------------------------ listage des images dans un tableau
- // définition du tableau HTML
- echo "<table width='100%' border='0'>";
-
- reset($tImages);
- reset($tDates);
- $ligne=0;
- while (($ligne*$nbPhotosParLigne)<(sizeof($tImages)))
- {
- echo "<tr>";
- for ($pos = 0; $pos < $nbPhotosParLigne; $pos++)
- {
- $ind=$ligne*$nbPhotosParLigne+$pos;
- if ($tImages[$ind]!="" )
- {
- $NomImg=substr($tImages[$ind],0,strlen($tImages[$ind])-4);
- echo "<td align='center' valign='bottom'>";
- echo "<span class='images'><a target='_blank' href='img/img.php?img=./".$_GET['rub']."/".$_GET['page']."/".$NomImg."$extPhotos'><img alt='".$_GET['page']." Nom du site' title='".$_GET['page']." Nom du site' border='0' src='";
- echo $mini.$tImages[$ind];
- echo "'></a></span><br />";
- echo "<b>";
- // Afficher la taille de l'image
- imgt("img/".$_GET['rub']."/".$_GET['page']."/".$NomImg.".jpg" );
-
- echo "</b><br />".$tDates[$ind]."<br /><br /></td>";
- }
- else
- {
- echo "<td valign='middle' align='center'></td>";
- }
- }
- print "</tr>";
- $ligne++;
- }
- echo "</table>";
- // echo "[".date("Y-m-d H:i",$tVals[0])."] <B>".$tVals[1]."</B><BR>\n";
- // $tVals[1] est le fichier image
- ?>
|
Voyez-vous un moyen simple de faire une pagination avec ça ? (sans passer par un autre album photo, quoi...) Message édité par Heartless le 19-12-2006 à 15:59:18
|