<?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> Pas de Photo </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
?>