<?php

// ------------------------------------------------------------------------- //
// Album photos à partir des images miniatures                               //
// ------------------------------------------------------------------------- //
// Auteur: Christophe                                                        //
// Email:  ckris@mail.com                                                    //
// Web:    http://christophe.cassar.free.fr/                                 //
// ------------------------------------------------------------------------- //

// 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/
//
// 3) 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/)
//    je vous conseille l'utilisation de XnView (freeware)
//    il permet la génération/conversion des mini-images
//    très simplement (www.telecharger.com)
//    http://www.telecharger.com/cgi-bin/Total.pl?searchstring=xnview&system=
//
// 4) Placer ce script dans le répertoire des Photos
//    et renommez-le 'index.php3' ou 'index.php' (cf version php)
//    afin qu'il soit appellé automatiquement en accédant au répertoire
//    http://www.monsite.fr/Photos
//    Le tour est joué!
//    http://www.monsite.fr/Photos/index.php3
//
// 5) Configurer les variables ci-dessous
//
// Astuce :
// --------
// Il est possible en mettant la variable $extPhotos=""; de faire un album de
// Liens vers un autre répertoire.
// Il faut toujours creer un repertoire 'mini' (cf config) dans lequel on met
// les mini-photos (Astuce:dont le nom est celui du sous-repertoire à ouvrir)
//
// Voir http://christophe.cassar.free.fr/Egypte en cliquant, on va dans les
// differents repertoires, qui contiennent eux-aussi le script d'affichage des
// images.
// Aussi pour ceux qui s'interresse à l'Egypte! :o)

// Configuration et Définition des variables
// Titre de votre Album
  
$titreAlbum = "Croisière en Egypte";
  
$soustitreAlbum = "Luxor - Assouan";
  
// nom du répertoire où se trouve les mini images (répertoire "mini" par défaut)
  
$mini = "./mini/"; // (n'oubliez pas le '/' à la fin... :o)

// Nombre de Photos par ligne (5 par défaut)
  
$nbPhotosParLigne = 5;

// Largeur d'une diapo (100 par défaut)
  
$largeurDiapo = 100;

// Extention des photos ('.jpg' par défaut ou '.gif')
  
$extPhotos=".jpg";
// Idée: en donnant pour extension ".html", vous pouvez créer une
// page HTML en donnant une légende ou un texte pour chacune des photos !
// Code HTML pour la page HTML ci-dessous

/* Nom du Fichier ===> nomPhoto.html
   Remplacer 'nomPhoto' par le nom réel de votre photo au dessus et au dessous !
   
                 <!-- Début du script -->

                 <HTML><HEAD><TITLE>Zoom</TITLE></HEAD><BODY><CENTER>
                 <IMG SRC="nomPhoto.jpg">
                 <BR>
                 Le texte ou la légende
                 <BR>
                 </CENTER></BODY></HTML>

                 <!-- Fin du Script -->

*/

// ------------------------------------------------------------------------- //
// 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 fameux tri croissant des dates :o)
  
sort($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 H:i",$tVals[0])."]<BR>";
  }

  
// generation de la partie HTML
  
echo "<HTML><HEAD><TITLE>PLAQUETTE</TITLE></HEAD><BODY BGCOLOR=#DDDDDD>";
  
  echo
"<CENTER><H1>$titreAlbum</H1><H3>$soustitreAlbum</H3><BR>";

  
// définition du tableau HTML (plaquette de photos)
  
echo "<TABLE WIDTH=640 CELLSPACING=33 BORDER=10 CELLPADDING=2 BGCOLOR=#CCCCCC>";
  
  
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 BGCOLOR=#FFFFFF VALIGN=BOTTOM>";
          echo
"<A HREF=".$NomImg."$extPhotos><IMG SRC='";
          echo
$mini.$tImages[$ind];
          echo
"' WIDTH='$largeurDiapo'></A><BR><FONT SIZE=1>";
          echo
$tDates[$ind]."</FONT>".$NomImg."</TD>";
      }
      else
      {
          echo
"<TD ALIGN=CENTER VALIGN=BOTTOM>&nbsp;Pas de Photo&nbsp;</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

?>