Pb creation miniatures php photos module

Fermé
tittye Messages postés 4 Date d'inscription mardi 10 novembre 2009 Statut Membre Dernière intervention 21 octobre 2013 - 20 oct. 2013 à 16:32
tittye Messages postés 4 Date d'inscription mardi 10 novembre 2009 Statut Membre Dernière intervention 21 octobre 2013 - 21 oct. 2013 à 20:57
Bonjour,

Alors voilà, j'ai créé cette galerie manuellement
http://www.auchatvabien.fr/diaporama.php
(dsl pr la musique qui va vous casser les oreilles) en php et Javascript

Ayant toujours plus de photos à insérer, j'ai décidé d'automatiser le processus. Php Photo Module correspond très bien à mes attentes : simple et ressemble au fonctionnement de ma galerie manuelle. Juste besoin de toucher au CSS donc ça ne devrait pas poser de problème. en gros on installe les fichiers par FTP puis on met les photos ds un dossier spécifique.

Mon problème c'est que les miniatures ne sont pas créées (alors qu'elles sont censées l'etre automatiquement) et donc les photos ne s'affichent pas. Les icones par contre sont créées.
 http://www.auchatvabien.fr/galerie/album/ 
un site qui fonctionne normalement -->
http://lebrochetbelietois.free.fr/album/index.php?show_...

Alors j'ai lu ça sur un site de téléchargement du produit
"Attention, il faut penser à installer les extensions _gd2 et _exif sinon vous allez voir des problèmes d'affichage"

1/ est ce que c'est ça mon problème ?
2/ comment les installer, je n'y comprends rien, j'ai l'impression que c'est seulement une installation en local ds le fichier php.ini (je travaille tjs en direct via le ftp dc pas de wamp etc.), est ce que c'est sur le serveur qu'ils seraient absents ?

Et si ce n'est pas ça, où est ce que je fais une erreur ?

Je vous mets le code en-dessous si jamais ça peut vous servir...
Merci beaucoup pour votre aide !! et si vous ne pouvez pas m'aider peut etre savez-vous où je peux en trouver, de l'aide. MERCI

INDEX

<?php 
require("conf.php");

//error_reporting(E_ALL); // afficher les erreurs
error_reporting(0); // ne pas afficher les erreurs

///////////////////////////////////////////////////////////////////////
//fonction qui renomme les dossiers comprenant des caractères interdits
///////////////////////////////////////////////////////////////////////
function scan_invalid_char($dir2scan) {
if ($handle = opendir($dir2scan)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != ".." && eregi("[]\[\àáâãäåÀÁÂÃÄÅÈÉÊËèéêëÌÍÎÏìíîïÒÓÔÕÖòóôõöÙÚÛÜùúûü.!@#$%^&*+{}()'=$]", $file) && is_dir($dir2scan.'/'.$file)) {
$newfilename = $file;
$newfilename = eregi_replace("[]\[\.!@#$%^&*+{}()'=$]", "_", $newfilename);
$newfilename = eregi_replace("[àáâãäåÀÁÂÃÄÅ]", "a", $newfilename);
$newfilename = eregi_replace("[ÈÉÊËèéêë]", "e", $newfilename);
$newfilename = eregi_replace("[Çç]", "c", $newfilename);
$newfilename = eregi_replace("[ÌÍÎÏìíîï]", "i", $newfilename);
$newfilename = eregi_replace("[ÒÓÔÕÖòóôõö]", "o", $newfilename);
$newfilename = eregi_replace("[ÙÚÛÜùúûü]", "u", $newfilename);
rename($dir2scan.'/'.$file, $dir2scan.'/'.$newfilename);
}
}
closedir($handle);
}
}

//////////////////////////////////////////////////////////////////////////
//fonction pour créer une miniature de la 1ère image du sous dossier photo
//////////////////////////////////////////////////////////////////////////
function create_icon($dir2iconize) {
$dir = PHOTOS_DIR."/".$dir2iconize; //chemin vers le répertoire à dont on doit créer l'icone
if ($handle = opendir($dir)) {
$cFile = 0;
while (false !== ($file = readdir($handle))) {
if($file != "." && $file != ".."){
if(is_file($dir . "/" . $file)){
$listFile[$cFile] = $file;
$cFile++;
}
}
}
closedir($handle);
}
//$extract = scandir($dir);//scan des "array" du répertoire
$first_dir_item = $listFile[0]; // on extrait la valeur du premier fichier du répertoire (après"." et "..")
list($width, $height, $type, $attr) = getimagesize($dir."/".$first_dir_item);//on liste les valeur de l'image
$miniature = imagecreatetruecolor(ICO_WIDTH, ICO_HEIGHT);
if ($type == 1) {
$image = imagecreatefromgif($dir."/".$first_dir_item);
}
if ($type == 2) {
$image = imagecreatefromjpeg($dir."/".$first_dir_item);
}
if ($type == 3) {
$image = imagecreatefrompng($dir."/".$first_dir_item);
}
//imagecopyresampled(image de destination, image source, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h);
imagecopyresampled($miniature, $image, 0, 0,((($width - ICO_WIDTH)/2) <= ICO_WIDTH ? ICO_WIDTH-(($width - ICO_WIDTH)/2) : ($width - ICO_WIDTH)/2), ((($height - ICO_HEIGHT)/2) <= 0 ? ICO_HEIGHT-(($height - ICO_HEIGHT)/2) : ($height - ICO_HEIGHT)/2), ICO_WIDTH, ICO_HEIGHT, ICO_WIDTH*2, ICO_HEIGHT*2);
imagejpeg($miniature, $dir."/".ICO_FILENAME, GLOBAL_JPG_QUALITY);
}

//////////////////////////////////////////////
//fonction pour créer le répertoire miniatures
//////////////////////////////////////////////
function create_folder($dirwhere2folderize, $dir_name) {
mkdir(PHOTOS_DIR."/".$dirwhere2folderize."/".$dir_name);
}

/////////////////////////////////////////////////////////////////////
//fonction pour créer toutes les miniatures du répertoire en question
/////////////////////////////////////////////////////////////////////
function create_newimage($dirname, $file2miniaturize, $dimensionmax, $dir_where2save, $file_prefixe) {
$dir = PHOTOS_DIR."/".$dirname; //chemin vers le répertoire à dont on doit créer l'icone
$dir_where2save = ($dir_where2save ? "/".$dir_where2save : "");
$file_prefixe = ($file_prefixe ? $file_prefixe : "");
list($width, $height, $type, $attr) = getimagesize($dir."/".$file2miniaturize);//on liste les valeur de l'image
if ($width >= $height) {
$newwidth = $dimensionmax;
$newheight = ($dimensionmax*$height)/$width;
} else {
$newwidth = ($dimensionmax*$width)/$height;
$newheight = $dimensionmax;
}
$miniature = imagecreatetruecolor($newwidth, $newheight);
if ($type == 1) {
$image = imagecreatefromgif($dir."/".$file2miniaturize);
}
if ($type == 2) {
$image = imagecreatefromjpeg($dir."/".$file2miniaturize);
}
if ($type == 3) {
$image = imagecreatefrompng($dir."/".$file2miniaturize);
}
imagecopyresampled($miniature, $image, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
imagejpeg($miniature, $dir.$dir_where2save."/".$file_prefixe.$file2miniaturize, GLOBAL_JPG_QUALITY);
}

/////////////////////////////////////////
//fonction pour tronquer un nom trop long
/////////////////////////////////////////
function wordTruncate($str) {
$str_to_count = html_entity_decode($str);
echo strlen($str_to_count);
if (strlen($str_to_count) <= PHOTONAME_MAXCHAR) {
return $str;
} else {
$str2 = substr($str_to_count, 0, PHOTONAME_MAXCHAR - 3)."...";
return htmlentities($str2);
}
}
?>
<html>
<head>
<title>PHP Photo module 0.2.3</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="global_style.css" rel="stylesheet" type="text/css">
<SCRIPT LANGUAGE=Javascript>
<!--
function inCell(cell, newcolor) {
if (!cell.contains(event.fromElement)) {
cell.bgColor = newcolor;
}
}

function outCell(cell, newcolor) {
if (!cell.contains(event.toElement)) {
cell.bgColor = newcolor;
}
}
//-->
</SCRIPT>
</head>
<body>
<?php
$show_heading = (isset($_GET['show_heading']) ? $_GET['show_heading'] : "");
ini_set('max_execution_time', 120); //2 mn max
switch ($show_heading) {
///////////////////////////////////////////////////////////////
//listing des répertoires photos sur la page d'index par défaut
///////////////////////////////////////////////////////////////
default:
scan_invalid_char(PHOTOS_DIR); //scan des répertoires qui contiennent des caractères interdits
// listage des répertoires et fichiers
if ($handle = opendir(PHOTOS_DIR)) {
$cDir = 0;
$cFile = 0;
while (false !== ($file = readdir($handle))) {
if($file != "." && $file != ".." && $file != THUMBS_DIR && $file != IMAGE_STDDIM && $file != IMAGE_400 && $file != IMAGE_800){
if(is_dir(PHOTOS_DIR . "/" . $file)){
$listDir[$cDir] = $file;
$cDir++;
}
else{
$listFile[$cFile] = $file;
$cFile++;
}
}
}
if (ALPHABETIC_ORDER == true) {
usort($listDir,"strnatcmp");
}
closedir($handle);
}
//
$total_icons = count($listDir);
$totalPages = ceil($total_icons/ICO_PER_PAGE);
$page_num = (isset($_GET['page_num']) && $_GET['page_num'] !== "" && $_GET['page_num'] <= $totalPages ? $_GET['page_num'] : "1");
?>
<div class="fdgris"><span class="Style1">////// <?php echo HOME_NAME ?></span></div>
<div class="fdcolor1" align="center">
<span class="Style2"><?php if ($page_num > 1) { ?><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show_heading=default&page_num=<?php echo ($page_num-1); ?>" class="Style2">«</a> | <?php }

for ($l =1; $l < $totalPages; $l++) {
if ($page_num != $l) {
?> <a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show_heading=default&page_num=<?php echo $l; ?>" class="Style2"><?php echo $l; ?></a> | <?php
} else {
?> <b><?php echo $l; ?></b> | <?php
}
}
if ($page_num != $l) {
?><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show_heading=default&page_num=<?php echo $l; ?>" class="Style2"><?php echo $l; ?></a><?php
} else {
?><b><?php echo $l; ?></b><?php
}
if ($page_num < $totalPages) { ?> | <a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show_heading=default&page_num=<?php echo ($page_num+1) ?>" class="Style2">»</a><?php } ?>
</span></div>
<br>
<table border="0" align="center" cellpadding="8" cellspacing="0">
<tr>
<?php
$separateurs = array('_', '-', '.');
$k=0;
for ($i = (ICO_PER_PAGE*$page_num) - ICO_PER_PAGE; $i < ($total_icons > (ICO_PER_PAGE*($page_num)) ? ICO_PER_PAGE*$page_num : $total_icons); $i++) {
if ($listDir[$i] != "." && $listDir[$i] != ".." && $listDir[$i] != THUMBS_DIR && $listDir[$i] != IMAGE_STDDIM && $listDir[$i] != IMAGE_400 && $listDir[$i] != IMAGE_800 && is_dir(PHOTOS_DIR . "/" . $listDir[$i]) == true) {
//création du répertoire miniatures et images
if (!file_exists(PHOTOS_DIR . "/" . $listDir[$i] . "/" . THUMBS_DIR)) {
create_folder($listDir[$i], THUMBS_DIR);
}
if (!file_exists(PHOTOS_DIR . "/" . $listDir[$i] . "/" . IMAGE_STDDIM)) {
create_folder($listDir[$i], IMAGE_STDDIM);
}
if (!file_exists(PHOTOS_DIR . "/" . $listDir[$i] . "/" . IMAGE_800)) {
create_folder($listDir[$i], IMAGE_800);
}
if (!file_exists(PHOTOS_DIR . "/" . $listDir[$i] . "/" . IMAGE_400)) {
create_folder($listDir[$i], IMAGE_400);
}
//création de la miniature
if (!file_exists(PHOTOS_DIR . "/" . $listDir[$i] . "/" . ICO_FILENAME)) { //si la miniature existe
create_icon($listDir[$i]);
}
list($width, $height, $type, $attr) = getimagesize(PHOTOS_DIR . "/" . $listDir[$i] . "/" . ICO_FILENAME);//on liste les valeurs de la miniature
if ($width != ICO_WIDTH || $height != ICO_HEIGHT) { //on affiche
create_icon($listDir[$i]);
}
?>
<?php (is_int($k/ICO_PER_LINE) ? print "<tr>": print ""); ?>
<td>
<table border="0" cellpadding="1" cellspacing="1" bgcolor="#666666">
<tr class="tddeco">
<td width="<?php echo ICO_WIDTH + 18; ?>" height="<?php echo ICO_HEIGHT + 18; ?>" align="center" valign="middle" class="tdover" onmouseover="this.style.borderColor='#666666'" onmouseout="this.style.borderColor='#FFFFFF'">
<a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show_heading=list&dir=<?php echo $listDir[$i]; ?>"><img src="<?php echo PHOTOS_DIR . "/" . rawurlencode($listDir[$i]) . "/" . ICO_FILENAME ?>" alt="<?php echo str_replace($separateurs, ' ', $listDir[$i]); ?>" width="<?php echo ICO_WIDTH ?>" height="<?php echo ICO_HEIGHT ?>" border="0" class="imageborder"></a></td>
</tr>
<tr>
<td align="center"><span class="Style2"><?php
$titre_album = str_replace($separateurs, ' ', $listDir[$i]);
$nbmots = explode(" ", $titre_album);
$maxword2show = ((count($nbmots) < 6) ? count($nbmots) : 6);
$wordnb = 0;
while ($wordnb <$maxword2show) {
echo $nbmots[$wordnb] . " ";
$wordnb++;
}
echo ((count($nbmots) > 6) ? " ..." : "");
?></span></td>
</tr>
</table>
</td>
<?php
//
}
$k++;
}
?>
</table><br>
<div class="fdcolor1" align="center">
<span class="Style2"><?php if ($page_num > 1) { ?><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show_heading=default&page_num=<?php echo ($page_num-1); ?>" class="Style2">«</a> | <?php }

for ($l =1; $l < ceil($total_icons/ICO_PER_PAGE); $l++) {
if ($page_num != $l) {
?> <a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show_heading=default&page_num=<?php echo $l; ?>" class="Style2"><?php echo $l; ?></a> | <?php
} else {
?> <b><?php echo $l; ?></b> | <?php
}
}
if ($page_num != $l) {
?><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show_heading=default&page_num=<?php echo $l; ?>" class="Style2"><?php echo $l; ?></a><?php
} else {
?><b><?php echo $l; ?></b><?php
}
if ($page_num < ( ceil(($total_icons)/ICO_PER_PAGE)) ) { ?> | <a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show_heading=default&page_num=<?php echo ($page_num+1) ?>" class="Style2">»</a><?php } ?>
</span></div>
<?php
break;

//////////////////////////////////////////////////////////
//listing des miniatures dans un répertoire photo spécifié
//////////////////////////////////////////////////////////
case ('list'):
$photodir = (isset($_GET['dir']) ? $_GET['dir'] : "");
if (!isset($_GET['dir']) || $_GET['dir'] == "") {//on vérifie que le répertoire photo existe bien ?>
<table border="0" align="center" cellpadding="28" cellspacing="0">
<tr>
<td align="center"><span class="txtrouge">Vous devez spécifier un répertoire photo !</span>
<p>
<form method="post"><INPUT TYPE="button" VALUE="Retour" onClick="history.go(-1)"></form>
</td>
</tr>
</table>
<?php
break;
}
//on supprime les slash, antislash et points possibles pour éviter les failles de sécurité
$photodir = preg_replace("/\\\\/", "", $photodir);
$str2clean = array("." => "", "/" => "");
$photodir = strtr($photodir, $str2clean);
$page_num = (isset($_GET['page_num']) ? $_GET['page_num'] : "1");//vérification que le numéro de page existe bien
$dir = PHOTOS_DIR . "/" . $photodir; //chemin vers le répertoire qui contient les miniatures
if (!file_exists($dir)) {//on vérifie que le répertoire photo existe bien ?>
<table border="0" align="center" cellpadding="28" cellspacing="0">
<tr>
<td align="center"><span class="txtrouge">Ce répertoire photo n'existe pas !</span>
<p>
<form method="post"><INPUT TYPE="button" VALUE="Retour" onClick="history.go(-1)"></form>
</td>
</tr>
</table>
<?php
break;
}
//création du répertoire miniatures et images
if (!file_exists($dir . "/" . THUMBS_DIR)) {
create_folder($photodir, THUMBS_DIR);
}
if (!file_exists($dir . "/" . IMAGE_STDDIM)) {
create_folder($photodir, IMAGE_STDDIM);
}
if (!file_exists($dir . "/" . IMAGE_800)) {
create_folder($photodir, IMAGE_800);
}
if (!file_exists($dir . "/" . IMAGE_400)) {
create_folder($photodir, IMAGE_400);
}
// listage des répertoires et fichiers
if ($handle = opendir($dir)) {
$cDir = 0;
$cFile = 0;
while (false !== ($file = readdir($handle))) {
if($file != "." && $file != ".."){
if(is_dir($dir . "/" . $file)){
$listDir[$cDir] = $file;
$cDir++;
}
else{
$listFile[$cFile] = $file;
$cFile++;
}
}
}
closedir($handle);
}
if (ALPHABETIC_ORDER == true) {
usort($listFile,"strnatcmp");
}

//selon l'ordonnancement, on détermine la bonne pagination de retour à l'index principal.
if (ALPHABETIC_ORDER == true) {
if ($handle = opendir(PHOTOS_DIR)) {
$cDir = 0;
while (false !== ($subdir = readdir($handle))) {
if($subdir != "." && $subdir != ".." && $subdir != THUMBS_DIR && $subdir != IMAGE_STDDIM && $subdir != IMAGE_400 && $subdir != IMAGE_800){
if(is_dir(PHOTOS_DIR . "/" . $subdir)){
$listDir[$cDir] = $subdir;
$cDir++;
}
}
}
closedir($handle);
}
usort($listDir,"strnatcmp");
$photoDirNba = 1;
for ($b=0; $b < count($listDir); $b++) {
$ordertest[$photoDirNba] = $listDir[$b];
if($ordertest[$photoDirNba] == $photodir){
$dir_index = $photoDirNba;
} else {
$photoDirNba++;
}
}
} else {
// récupération du numéro du dossier photo
if ($handle = opendir(PHOTOS_DIR)) {
$photoDirNbb = 1;
while (false !== ($photoDirectory = readdir($handle))) {
if($photoDirectory != "." && $photoDirectory != ".." && $photoDirectory != THUMBS_DIR && $photoDirectory != IMAGE_STDDIM && $photoDirectory != IMAGE_400 && $photoDirectory != IMAGE_800){
if(is_dir(PHOTOS_DIR . "/" . $photoDirectory)){
if($photoDirectory == $photodir){
$dir_index = $photoDirNbb;
} else {
$photoDirNbb++;
}
}
}
}
closedir($handle);
}
}
$page_index = ceil($dir_index/ICO_PER_PAGE);
//
//on liste les miniatures
if ($handle = opendir($dir."/".THUMBS_DIR)) {
$thumb = 0;
while (false !== ($file = readdir($handle))) {
if($file != "." && $file != ".."){
if(is_file($dir."/".THUMBS_DIR . "/" . $file)){
$extractthumbs[$thumb] = $file;
$thumb++;
}
}
}
closedir($handle);
}
$valid = 0;
for ($i=0; $i < count($listFile); $i++) {
if ($listFile[$i] !== ICO_FILENAME) {
$listvalidimg[$valid] = $listFile[$i];
$valid++;
}
}

$total_files = count($listvalidimg);// on compte le nombre d'éléments dans le dossier sans compter "." et ".."
$separateurs = array('_', '-', '.');
?>
<div class="fdgris"><span class="Style1">////// <a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show_heading=default&page_num=<?php echo $page_index; ?>" class="Style1"><?php echo HOME_NAME; ?></a> » <?php echo str_replace($separateurs, ' ', $photodir); ?> / photos <?php echo (($page_num-1)*MINIATURES_PER_PAGE)+1; ?> à <?php if ($page_num < ( ceil(($total_files)/MINIATURES_PER_PAGE)) ) { echo (($page_num)*MINIATURES_PER_PAGE); } else { echo $total_files; } ?> sur <?php echo $total_files; ?> </span></div>
<div class="fdcolor1" align="center">
<span class="Style2"><?php if ($page_num > 1) { ?><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show_heading=list&dir=<?php echo $photodir; ?>&page_num=<?php echo ($page_num-1) ?>" class="Style2">«</a> | <?php }
$l =1;
while ($l < (ceil(($total_files)/MINIATURES_PER_PAGE)) ) {
if ($page_num != $l) {
?> <a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show_heading=list&dir=<?php echo $photodir; ?>&page_num=<?php echo $l; ?>" class="Style2"><?php echo $l; ?></a> | <?php
} else {
?> <b><?php echo $l; ?></b> | <?php
}
$l++;
}
if ($page_num != $l) {
?><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show_heading=list&dir=<?php echo $photodir; ?>&page_num=<?php echo $l; ?>" class="Style2"><?php echo $l; ?></a><?php
} else {
?><b><?php echo $l; ?></b><?php
}
if ($page_num < ( ceil(($total_files)/MINIATURES_PER_PAGE)) ) { ?> | <a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show_heading=list&dir=<?php echo $photodir; ?>&page_num=<?php echo ($page_num+1) ?>" class="Style2">»</a><?php } ?>
</span></div>
<br>
<table border="0" align="center" cellpadding="8" cellspacing="0">
<tr>
<?php
//si les références correspondent :
$total_thumbFloor = MINIATURES_PER_PAGE*$page_num;
$k=0;
for ($i = $total_thumbFloor - MINIATURES_PER_PAGE; $i < ( ($total_files > $total_thumbFloor) ? $total_thumbFloor : $total_files); $i++) {//oncompte le nb d'éléments à afficher selon le numéro de page
$fileexist = "";
$j = 0;
while ($j < ($total_files)) {
if ("__".$listvalidimg[$i] == (isset($extractthumbs[$j]) ? $extractthumbs[$j] : "")) {
$fileexist = $extractthumbs[$j];
}
$j++;
}
$pos = strrpos($listvalidimg[$i], '.'); //calcule la position du point dans la chaine $document, ex. : 8
$ext = strtolower(substr($listvalidimg[$i], $pos + 1));
if (($ext == "jpeg" || $ext == "jpg" || $ext == "gif" || $ext == "png") && $listvalidimg[$i] !== ICO_FILENAME && ("__".$listvalidimg[$i] !== $fileexist)) { //si $document contient les extensions d'image et qu'il n'est pas icone/image du répertoire
create_newimage($photodir, $listvalidimg[$i], MINIATURE_MAXDIM, THUMBS_DIR, "__");
}
?>
<?php (is_int($k/MINIATURES_PER_LINE) ? print "<tr>": print ""); ?>
<td>
<table border="0" cellpadding="1" cellspacing="1" bgcolor="#666666">
<tr class="tddeco">
<td width="<?php echo MINIATURE_MAXDIM + 18; ?>" height="<?php echo MINIATURE_MAXDIM + 18; ?>" align="center" valign="middle" class="tdover" onmouseover="this.style.borderColor='#666666'" onmouseout="this.style.borderColor='#FFFFFF'"><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show_heading=detail&dir=<?php echo rawurlencode($photodir); ?>&photo=<?php echo $i+1; ?>"><img src="<?php echo PHOTOS_DIR."/" . rawurlencode($photodir) . "/" . THUMBS_DIR . "/__".$listvalidimg[$i] ?>" border="0" alt="<?php echo $listvalidimg[$i]; ?>" class="imageborder"></a></td>
</tr>
<tr>
<td align="center"><span class="Style2"><?php echo $i+1 ."| " . wordTruncate($listvalidimg[$i]); ?></span></td>
</tr>
</table>
</td>
<?php
$k++;
}
?>
</table><br>
<div class="fdcolor1" align="center">
<span class="Style2"><?php if ($page_num > 1) { ?><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show_heading=list&dir=<?php echo $photodir; ?>&page_num=<?php echo ($page_num-1) ?>" class="Style2">«</a> | <?php }
$l =1;
while ($l < (ceil(($total_files)/MINIATURES_PER_PAGE)) ) {
if ($page_num != $l) {
?> <a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show_heading=list&dir=<?php echo $photodir; ?>&page_num=<?php echo $l; ?>" class="Style2"><?php echo $l; ?></a> | <?php
} else {
?> <b><?php echo $l; ?></b> | <?php
}
$l++;
}
if ($page_num != $l) {
?><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show_heading=list&dir=<?php echo $photodir; ?>&page_num=<?php echo $l; ?>" class="Style2"><?php echo $l; ?></a><?php
} else {
?><b><?php echo $l; ?></b><?php
}
if ($page_num < ( ceil(($total_files)/MINIATURES_PER_PAGE)) ) { ?> | <a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show_heading=list&dir=<?php echo $photodir; ?>&page_num=<?php echo ($page_num+1) ?>" class="Style2">»</a><?php } ?>
</span></div>
<?php
break;

////////////////////
//détail de la photo
////////////////////
case ('detail'):
$photodir = (isset($_GET['dir']) ? $_GET['dir'] : "");
if (!isset($_GET['dir']) || $_GET['dir'] == "") {//on vérifie que le répertoire photo existe bien ?>
<table border="0" align="center" cellpadding="28" cellspacing="0">
<tr>
<td align="center"><span class="txtrouge">Vous devez spécifier un répertoire photo !</span>
<p>
<form method="post"><INPUT TYPE="button" VALUE="Retour" onClick="history.go(-1)"></form>
</td>
</tr>
</table>
<?php
break;
}
//on supprime les slash, antislash et points possibles pour éviter les failles de sécurité
$photodir = preg_replace("/\\\\/", "", $photodir);
$str2clean = array("." => "", "/" => "");
$photodir = strtr($photodir, $str2clean);
$dir = PHOTOS_DIR . "/" . $photodir; //chemin vers le répertoire qui contient les miniatures
if (!file_exists($dir)) {//on vérifie que le répertoire photo existe bien ?>
<table border="0" align="center" cellpadding="28" cellspacing="0">
<tr>
<td align="center"><span class="txtrouge">Ce répertoire photo n'existe pas !</span>
<p>
<form method="post"><INPUT TYPE="button" VALUE="Retour" onClick="history.go(-1)"></form>
</td>
</tr>
</table>
<?php
break;
}
$photo = (isset($_GET['photo']) ? $_GET['photo'] : "");
$dim = (isset($_GET['dim']) ? $_GET['dim'] : IMAGE_STDDIM);
$dir = PHOTOS_DIR . "/" . $photodir;
if ($handle = opendir($dir)) {
$cFile = 1;
while (false !== ($file = readdir($handle))) {
if($file != "." && $file != ".."){
if(is_file($dir . "/" . $file) && $file != ICO_FILENAME){
$listFile[$cFile] = $file;
$cFile++;
}
}
}
closedir($handle);
}
// Florent. Je retrie par ordre alphabétique mais le tableau trié $listFile2 commence à l'index 0.
// Je décale l'index pour que le tableau $listFile commence à 1, comme la variable $photo.
if (ALPHABETIC_ORDER == true)
{
$listFile2 = $listFile;
usort($listFile2,"strnatcmp");
for ($i=0;$i < count($listFile2); $i++) {
$listFile[$i+1] = $listFile2[$i];
}
}
//
if (!isset($_GET['photo']) || $_GET['photo'] == "" || !isset($listFile[$photo])) {//on vérifie que la photo existe bien ?>
<table border="0" align="center" cellpadding="28" cellspacing="0">
<tr>
<td align="center"><span class="txtrouge">Il n'y a aucune photo à afficher !</span>
<p>
<form method="post"><INPUT TYPE="button" VALUE="Retour" onClick="history.go(-1)"></form>
</td>
</tr>
</table>
<?php
break;
}
//
if (!file_exists($dir . "/" . $dim . "/" . $listFile[$photo])) {
create_newimage($photodir, $listFile[$photo], $dim, $dim, "");
}
$total_images = count($listFile);// on compte le nombre d'éléments dans le dossier sans compter "." et ".."
list($width, $height, $type, $attr) = getimagesize($dir . "/" . $dim . "/" . $listFile[$photo]);
//on créé les miniatures si elles sont absentes
if ($photo > 1 && !file_exists(PHOTOS_DIR . "/" . $photodir . "/" . THUMBS_DIR . "/__" . $listFile[$photo-1])) {
create_newimage($photodir, $listFile[$photo-1], MINIATURE_MAXDIM, THUMBS_DIR, "__");
}
if ($photo < $total_images && !file_exists(PHOTOS_DIR . "/" . $photodir . "/" . THUMBS_DIR . "/__" . $listFile[$photo+1])) {
create_newimage($photodir, $listFile[$photo+1], MINIATURE_MAXDIM, THUMBS_DIR, "__");
}
$separateurs = array('_', '-', '.');
?>
<div class="fdgris"><span class="Style1">////// <a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show_heading=default" class="Style1"><?php echo HOME_NAME ?></a> » <a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show_heading=list&dir=<?php echo $photodir ?>&page_num=<?php echo ceil($photo/MINIATURES_PER_PAGE); ?>" class="Style1"><?php echo str_replace($separateurs, ' ', $photodir); ?></a> » photo : <?php echo $listFile[$photo]; ?> / n°<?php echo $photo; ?> sur <?php echo $total_images; ?></span></div>
<br>
<table border="0" align="center" cellpadding="8" cellspacing="0">
<tr>
<td width="<?php echo MINIATURE_MAXDIM + 26; ?>" height="<?php echo MINIATURE_MAXDIM + 26; ?>">
<?php if ($photo > 1) {?>
<table border="0" cellpadding="1" cellspacing="1" bgcolor="#666666">
<tr class="tddeco">
<td width="<?php echo MINIATURE_MAXDIM + 18; ?>" height="<?php echo MINIATURE_MAXDIM + 18; ?>" align="center" valign="middle" class="tdover" onmouseover="this.style.borderColor='#666666'" onmouseout="this.style.borderColor='#FFFFFF'">
<a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show_heading=detail&dir=<?php echo $photodir; ?>&photo=<?php echo $photo-1; echo ($dim == IMAGE_STDDIM ? "" : "&dim=". $dim);?>"><img src="<?php echo PHOTOS_DIR . "/" . rawurlencode($photodir) . "/" . THUMBS_DIR . "/__" . $listFile[$photo-1]; ?>" alt="<?php echo $listFile[$photo-1]; ?>" border="0" class="imageborder"></a>
</td>
</tr>
</table>
<?php }?>
</td><td>
<table border="0" cellpadding="1" cellspacing="1" bgcolor="#666666">
<tr class="tddeco">
<td width="<?php echo $dim + 18; ?>" height="<?php echo $dim + 18; ?>" align="center" valign="middle" class="tdover" onmouseover="this.style.borderColor='#666666'" onmouseout="this.style.borderColor='#FFFFFF'">
<?php if ($photo != "") {
if ($photo < $total_images) { ?><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show_heading=detail&dir=<?php echo $photodir; ?>&photo=<?php echo $photo+1; echo ($dim == IMAGE_STDDIM ? "" : "&dim=". $dim);?>"><?php } ?>
<img src="<?php echo PHOTOS_DIR . "/" . rawurlencode($photodir) . "/" . $dim . "/" . $listFile[$photo]; ?>" alt="<?php echo $listFile[$photo]; ?>" <?php echo $attr; ?> border="0" class="imageborder">
<?php if ($photo < $total_images) { ?></a><?php }
} else { echo "<span class=\"txtrouge\">Il n'y a aucune photo à afficher</span>"; } ?>
</td>
</tr>
<tr>
<td align="center"><span class="Style2">
<?php if ($dim !== IMAGE_400) { ?>
<a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show_heading=detail&dir=<?php echo $photodir; ?>&photo=<?php echo $photo; ?>&dim=<?php echo IMAGE_400; ?>" class="Style2">400x300</a>
<?php } else { echo "<b>400x300</b>"; } ?>
||
<?php if ($dim !== IMAGE_STDDIM) { ?>
<a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show_heading=detail&dir=<?php echo $photodir; ?>&photo=<?php echo $photo; ?>&dim=<?php echo IMAGE_STDDIM; ?>" class="Style2">640x480</a>
<?php } else { echo "<b>640x480</b>"; } ?>
||
<?php if ($dim !== IMAGE_800) { ?>
<a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show_heading=detail&dir=<?php echo $photodir; ?>&photo=<?php echo $photo; ?>&dim=<?php echo IMAGE_800; ?>" class="Style2">800x600</a>
<?php } else { echo "<b>800x600</b>"; } ?>
<?php
if (exif_imagetype($dir.'/'.$listFile[$photo]) != IMAGETYPE_PNG && exif_imagetype($dir.'/'.$listFile[$photo]) != IMAGETYPE_GIF) {
?><hr size="1" noshade><?php
$exif = read_exif_data($dir.'/'.$listFile[$photo], 0, true);
echo $exif["FILE"]["FileName"] . " || " . round(($exif["FILE"]["FileSize"]/1024), 0) . " Ko || Résolution originale : ".$exif["COMPUTED"]["Width"]." x ".$exif["COMPUTED"]["Height"]."<br>\n";
if (isset($exif["EXIF"]["DateTimeOriginal"])) echo "Date et Heure : ".$exif["EXIF"]["DateTimeOriginal"]."<br>";
if (isset($exif["EXIF"]["ExposureTime"])) echo "Temps d'exposition : ".$exif["EXIF"]["ExposureTime"]." || ";
if (isset($exif["EXIF"]["ISOSpeedRatings"])) echo "ISO : ".$exif["EXIF"]["ISOSpeedRatings"]."<br>";
if (isset($exif["COMPUTED"]["ApertureFNumber"])) echo "Ouverture de la focale : ".$exif["COMPUTED"]["ApertureFNumber"]." || ";
if (isset($exif["EXIF"]["FocalLength"])) echo "Longueur de la focale : ".$exif["EXIF"]["FocalLength"]."\n";
}
?>
</span>
</td>
</tr>
</table>
</td>
<td width="<?php echo MINIATURE_MAXDIM + 26; ?>" height="<?php echo MINIATURE_MAXDIM + 26; ?>">
<?php if ($photo < $total_images) {?>
<table border="0" cellpadding="1" cellspacing="1" bgcolor="#666666">
<tr class="tddeco">
<td width="<?php echo MINIATURE_MAXDIM + 18; ?>" height="<?php echo MINIATURE_MAXDIM + 18; ?>" align="center" valign="middle" class="tdover" onmouseover="this.style.borderColor='#666666'" onmouseout="this.style.borderColor='#FFFFFF'">

<a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show_heading=detail&dir=<?php echo $photodir; ?>&photo=<?php echo $photo+1; echo ($dim == IMAGE_STDDIM ? "" : "&dim=". $dim);?>"><img src="<?php echo PHOTOS_DIR . "/" . rawurlencode($photodir) . "/" . THUMBS_DIR . "/__" . $listFile[$photo+1]; ?>" alt="<?php echo $listFile[$photo+1]; ?>" border="0" class="imageborder"></a>
</td>
</tr>
</table>
<?php }?>
</td>
</tr>
</table>

<?php
break;
//fin du switch
}
?>
<div class="fdgris" align="right">
<span class="Style2">Php Photo Module 0.2.3 | auteur : <a href="http://www.jensen-siu.net" target="_blank" class="Style2" title="Graphiste - Concepteur multimedia">Jensen SIU</a> | distribution sur : <a href="http://www.atelier-r.net/index.php" target="_blank" class="Style2" title="Annuaire cooperatif du graphisme et du multimedia">Atelier R</a></span>
</div>
<noscript>
<!-- Si vous retirez la référence ci dessus pour des raisons esthétiques, je vous remercie de laisser celle-ci que personne ne verra. Merci. -->
Php Photo Module 0.2.3 | auteur : <a href="http://www.jensen-siu.net" target="_blank" title="Graphiste - Concepteur multimedia">Jensen SIU</a> | distribution sur : <a href="http://www.atelier-r.net/index.php" target="_blank" title="Annuaire cooperatif du graphisme et du multimedia">Atelier R</a>
</noscript>
</body>
</html>

CONFIGURATION

<?php 
/*
Ce script offre la possibilité d'afficher des images de format GIF, JPG ou PNG.
*/
define('ALPHABETIC_ORDER', true); // Classer les fichiers et les dossiers par ordre alphabétique / false pour non classé
define('PHOTOS_DIR', 'photos'); //nom du répertoire un seront stockés les sous répertoires de photos
define('THUMBS_DIR', 'miniatures'); // nom des répertoires contenant les fichiers de miniatures
define('ICO_FILENAME', '_icon.jpg'); // nom de l'icone créée à partir de la 1ère image de chaque répertoire
define('ICO_WIDTH', '225'); // largeur de l'image de l'icone en pixel / ne pas dépasser la moitié de l'image originale
define('ICO_HEIGHT', '75'); // hauteur de l'image de l'icone en pixel / ne pas dépasser la moitié de l'image originale
define('MINIATURE_MAXDIM', '120'); // largeur de l'image de miniature en pixel / ne pas dépasser la moitié de l'image originale
define('GLOBAL_JPG_QUALITY', '80'); // taux de compression des jpg créés
/*
La capacité du script à créer vos miniatures photo dépend de la rapidité d'execution de votre serveur :
plus vous choisissez d'afficher de photos par page, plus il sera lent à la première execution.
Une fois créées, les photos restent sur le serveur.
*/
define('MINIATURES_PER_PAGE', 18); //nombre de miniatures à afficher par page
define('MINIATURES_PER_LINE', 6); //nombre de miniatures à afficher par ligne dans les tableaux
define('HOME_NAME', 'LES DOSSIERS PHOTO'); //nombre de miniatures à afficher par ligne dans les tableaux
define('ICO_PER_PAGE', 12); //nombre de miniatures à afficher par page
define('ICO_PER_LINE', 3); //nombre de miniatures à afficher par ligne dans les tableaux
define('IMAGE_STDDIM', '640'); // largeur de l'image de miniature en pixel / ne pas dépasser la moitié de l'image originale
define('IMAGE_400', '400'); // largeur de l'image de miniature en pixel / ne pas dépasser la moitié de l'image originale
define('IMAGE_800', '800'); // largeur de l'image de miniature en pixel / ne pas dépasser la moitié de l'image originale
define('PHOTONAME_MAXCHAR', 17); // Nb max de caractères pour un nom de photo
?>

Encore merci
A voir également:

3 réponses

pour installer ces extensions sur ton serveur, il faut avoir "la main" dessus, ce n'est souvent pas le cas, pour des personnes qui "louent" un serveur.

Une méthode pour vérifier, c'est de créer un fichier, phpinfo.php

et d'y insérer le code suivant :

<?php

phpinfo();

?>
envois le fichier à la racine de ton serveur comme à l'habitude (ftp) puis appelles le fichier depuis ton navigateur: exemple:
http://www.auchatvabien.fr/phpinfo.php

Cela te permettra de vérifier quelles extensions disposes ton serveur. Il devrait y avoir une colonne GD. (la plus importante, pour générer les miniatures, exif pas vitale permet de récupérer des infos de tes images)
1
tittye Messages postés 4 Date d'inscription mardi 10 novembre 2009 Statut Membre Dernière intervention 21 octobre 2013
21 oct. 2013 à 19:55
Yep effectivement il y est

gd

GD Support enabled
GD Version bundled (2.0.34 compatible)
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.3.12
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XPM Support enabled
XBM Support enabled


et exif aussi

exif

EXIF Support enabled
EXIF Version 1.4 $Id: exif.c 293036 2010-01-03 09:23:27Z sebastian $
Supported EXIF Version 0220
Supported filetypes JPEG,TIFF

Donc le problème ne vient pas de là si je comprends bien ?
0
tittye Messages postés 4 Date d'inscription mardi 10 novembre 2009 Statut Membre Dernière intervention 21 octobre 2013
21 oct. 2013 à 20:57
Précision, en fait les miniatures se créent maintenant (possible que j'ai juste mal observé avant) mais les photos continuent à ne pas s'afficher. Et vraiment je ne comprends pas pourquoi...

svp aidez-moi 8-) (yeux du chat de shrek)
0