<?php
// ------------------------------------------------------------------------- //
// Affichage de photo aléatoire                                              //
// Bouillou                                                                  //
// Mai 2006                                                                  //
//                                                                           //
// Fonctionnement:                                                           //
// Crée un fichier texte contenant la liste de tout les jpg trouvé sur le    //
// serveur 1 fois par jour lors de la première visite.                       //
// Affiche aléatoirement 1 des photos trouvées.                              //
// ------------------------------------------------------------------------- //

//********************
//Création de la liste
//********************

$filename = 'liste_photos.txt';

//Crée la liste 1 fois par jour pour inclure le renouvellement des photos
//***********************************************************************

//Date de création du fichier liste de photo
if(file_exists($filename))
   {
    $date_file = date('d', filemtime($filename));
    $date_jour = date('d');
   }
else
   {
    $date_file = 1;
    $date_jour = 2;
   }
//echo $date_file . " " .$date_jour;
if((!file_exists($filename))||($date_file != $date_jour))
   {
    //Crée la liste
    //-------------
    $file_handle = fopen($filename,'w');
    //Lance la routine de parssage
    recurse_dir('.');
    for($i=0;$i < count($Arrayrep); $i++)
        fwrite($file_handle,$Arrayrep[$i]."\r\n");
    fclose($file_handle);
    $max = count($Arrayrep)-1;
    $nb_aleatoire = rand(0,$max);
    $photo_aléatoire = $Arrayrep[$nb_aleatoire];
   }
else
  {
   //Lit la liste existante
   //----------------------
   $file_handle = fopen($filename,'r');
   $file_content = fread ($file_handle , filesize($filename));
   fclose($file_handle);

   $file_content = explode("./",$file_content);
   $max = count($file_content)-1;
   $nb_aleatoire = rand(0,$max);
   $photo_aléatoire = './'.$file_content[$nb_aleatoire];
   $str_len = strlen($photo_aléatoire)-2;
   $photo_aléatoire = substr($photo_aléatoire,0,$str_len);
  }

//**********************************************
//Création de l'image miniature pour l'affichage
//**********************************************

//Création de l'image
//-------------------
$infos_img = getimagesize($photo_aléatoire);
$largeurDestination = 150;
//hauteur / largeur
$rapport = $infos_img[1] / $infos_img[0];
//Dimension de sortie
$hauteurDestination = $largeurDestination * $rapport;

$source = imagecreatefromjpeg($photo_aléatoire);

$largeurSource = imagesx($source);
$hauteurSource = imagesy($source);

if($largeurSource > $largeurDestination)
   {
    $im = ImageCreateTrueColor ($largeurDestination, $hauteurDestination)
         or die ("Erreur lors de la création de l'image");
   }
else
   {
    $im = ImageCreateTrueColor ($infos_img[0], $infos_img[1])
         or die ("Erreur lors de la création de l'image");
    $largeurDestination = $infos_img[0];
    $hauteurDestination = $infos_img[1];
   }

//Redimentionnement
//-----------------
ImageCopyResampled($im, $source, 0, 0, 0, 0, $largeurDestination, $hauteurDestination, $largeurSource, $hauteurSource);

//Création du fichier de sortie
//-----------------------------
if(file_exists('tmp.jpg'))
    unlink('tmp.jpg');
$fh=fopen('tmp.jpg','w');
fclose($fh);
ImageJpeg ($im,'tmp.jpg',80);


//*************************
//Affiche l'image de sortie
//*************************

echo '<a href="javascript:;" onClick="afficheMaxi(\'',$photo_aléatoire,'\')"><img src="tmp.jpg" alt="Image aléatoire" title="Cliquer pour agrandir!" width="150" border="0" /></a>';

//Envoi du lien par mail à un ami
echo '<a href="mailto:mail_de_mon_ami@mon_ami.com?subject=Image de la jeunesse de Bottens&bcc=info@jeunessebottens.com&body=Jette un oeil là-dessus... ;o)%0D%0A%0D%0Awww.jeunessebottens.com',$Arrayrep[$nb_aleatoire],'%0D%0A%0D%0AA bientôt,%0D%0A%0D%0AJeunesse de Bottens"><br /><font size="2" color="#FFFFFF">Envoyer à un ami</font></a>';

//********************
//Fonction de parssage
//********************

function recurse_dir($DIR)
{
     global $Arrayrep;

     if ($ODIR = opendir($DIR))
     {
         while ($FILE = readdir($ODIR))
         {
           //Ne prend pas en compte les dossiers . et ..
             if(($FILE != ".")&&($FILE != ".."))
             {
                 $TMP = $DIR."/".$FILE ;
                 //Parse également les répertoires et sous-répertoires
                 if (is_dir($TMP))
                     recurse_dir($TMP);
                 else
                 {
                  //explode sépare le string avec le premier paramètre!
                     $Extension_fichier = explode(".", $FILE);
                     if(strtoupper($Extension_fichier[1]) == "JPG")
                     {
                      //Ne prend pas en compte les images se terminant
                      if (strtoupper(substr($FILE,-10)) != "_SMALL.JPG")
                          {
                           $Arrayrep[]= $TMP;
                          }
                     }
                 }
             }
         }
     }
     else
     {
      printf ("Impossible d'ouvrir le dossier") ;
     }
}

?>