Gakman http://gakman.free.fr | Bonjour à tous.
Voilà j'essaye de fabriquer une page qui afficher des photos. Bon je tatonne encore beaucoup en PHP... Alors soyez indulgeants, merci !
Alors le fonctionnement :
Toutes les pages php sont en racine du site. Les photos sont dans un dossier photos puis classées dans des dossiers ayant eux-mêmes des dossiers et parfois encore un niveau de dossier à l'intérieur.
La page index.php possède un lien dans le menu :
Citation :
<a href="index.php?lang=<?="$lang"?>&rub=photos&saison=07e"><?="$rub_5_2"?></a>
|
Donc je fait un include de la page rub_photos.php avec comme paramètre saison=07e .
La page rub_photos.php :
Citation :
<p align="center" class="gdtitre">Photos</p>
<hr /><br />
<p> </p>
<p>Voilà la liste des photos. Cliquer sur le dossier voulu pour accéder aux photos ! Bon visionnage ;-) .</p>
<?
$saison=$_GET['saison'];
function liste($dir){
if ($_GET[v]) { $v=$_GET[v]; }
$dossier=opendir($dir);
while ($fichier=readdir($dossier)) {
$berk=array('.', '..');
if (!in_array($fichier,$berk)) {
$lien="$dir/$fichier";
$nbrT=count(split("/",$lien))-2;
//if ($v==$lien) { $here='<span class="here">';$hereEnd='</span>'; } else { $here='<span class="hereOn">';$hereEnd='</span>'; }
$space="";
for ($i=1; $i<$nbrT; $i++) { $space.=' '; }
if (is_dir($dir."/".$fichier)){
//echo $space.'<img src="/tutoriel/rep.jpg" border="0"> '.$here.'<b> <a href="index.php?v='.$lien.'">'.ucfirst($fichier).'</a> </b>'.$hereEnd.'<br />';
echo $space.'<img src="images/boueeS6.PNG" width="10" height="10" alt="¤" /> <b> <a href="index.php?rub=photos_aff&dossier='.$lien.'">'.ucfirst($fichier).'</a> </b><br />';
liste("$dir/$fichier" );
}
}
}
}
$v=htmlentities($_GET[v]);
//$situation=str_replace("./test/","",$v); $situation=str_replace("/"," > ",$situation);
$repertoire='./photos/20'.$saison;
$situation=str_replace($repertoire,"",$v); $situation=str_replace("/"," > ",$situation);
echo '<p>';
//liste("./test" );
liste($repertoire);
echo '</p>';
?>
<p> </p>
|
Simplement elle liste les dossiers présents et en fait un lien qui pointe vers la page rub_photos-aff.php avec comme variable dossier=$lien (déterminé dnas la page) :
Citation :
[/<a href="index.php?rub=photos_aff&dossier='.$lien.'">'.ucfirst($fichier).'</a>quote]
La page rub_photos_aff.php en question :
[quote]<p align="center" class="gdtitre">Photos</p>
<hr /><br />
<p> </p>
<?
$lien=$_GET['lien'];
echo '<p>Voilà la liste des photos : '.$lien.'</p>';
// START OF PARAMETERS SECTION
$columns=4; //number of images per line $ratio=5; //ratio imageSize / thumbnailImageSize $quality=5; //thumbnail image quality (0: worst to 100:best)
$scriptname= "test.php"; //filename of this script $thumb_dir = "thumb"; //directory created to stored small images
$thumb_prefix = "thumb_"; //prefix for generated images
// END OF PARAMETERS SECTION
echo "<center>\n<P><BR><BR>\n\n";
if (isset($_GET['dossier'])){$dossier=$_GET['dossier'];} elseif (empty($dossier)){$dossier='.';}
//$dossier="photos/2007e/Manu/13%20-%20Le%20voyage%20vers%20l'ouest/13_1%20-%20LiJeng/";
$mydirectory=$dossier; //directory in which images are fetched $counter=0;
$nbfiles = 0;
$currfile = "";
$filestab[0] = "";
$handle=opendir($mydirectory);
//create a directory for thumbnail images
if (! is_dir($thumb_dir))
{
mkdir($thumb_dir, 0777);
}
while ($currfile = readdir($handle))
{
// We get the extension of the current file and keep only image files $extension= strtolower(substr( strrchr( $currfile, "." ), 1 ));
if ($extension== "gif" || $extension== "jpg" || $extension== "jpeg" ||
$extension== "png" )
{
$nbfiles++;
$currfile = trim($currfile);
$filestab[$nbfiles] = $currfile;
if ($ishome == "" )
{
$size = GetImageSize($currfile);
$width = $size[0] / $ratio;
$height = $size[1] / $ratio;
$format = $size[2]; //1 = GIF, 2 = JPG, 3 = PNG, 5 = PSD, 6 = BMP
$currthumbfile = "./" . $thumb_dir . "/" . $thumb_prefix . $currfile;
if (! file_exists($currthumbfile))
{
//GIF format is not supported anymore by GD lib...
if ($format == 2) //JPG
$im = imagecreatefromjpeg($currfile);
else if ($format == 3) //PNG
$im = imagecreatefrompng($currfile);
if (!$im)
{
$currthumbfile = $currfile;
}
else
{ Imagejpeg($im, $currthumbfile, $quality);
ImageDestroy($im);
}
}
$currfile = str_replace(" ","%20",$currfile); // Allow filenames with space characters
$currthumbfile = str_replace(" ","%20",$currthumbfile); // Allow filenames with space characters
echo "<A HREF=$scriptname?ishome=1&filename=$currfile&filenumber=$nbfiles>\n";
echo "<IMG SRC=$currthumbfile WIDTH=$width HEIGHT=$height";
$currfile = str_replace("%20"," ",$currfile); // Clean display of filenames with space characters
echo " alt=\"Enlarge $currfile\">\n";
$currfile = str_replace(" ","%20",$currfile); //Clean display of filenames with space characters
echo "</A>\n";
$counter++;
if ($counter == $columns)
{
$counter = 0;
echo "<P><P><BR>";
}
}
}
}
closedir($handle);
if ($ishome == 1)
{
echo "<P>\n";
$filename = str_replace(" ","%20",$filename); // Allow filenames with space characters
$filename = stripslashes($filename); // Allow filenames with ' characters
echo "<IMG SRC=$filename>\n";
$display = str_replace("%20"," ",$filename); // Clean display of filenames with space characters
echo "<br><b> $display </b><br>";
echo "<P><BR>\n\n";
if ($filenumber != 1)
{
$prevnumber = $filenumber - 1;
$filestab[$prevnumber] = str_replace(" ","%20",$filestab[$prevnumber]); // Allow filenames with space characters
echo "[<A HREF=$scriptname?ishome=1&filename=$filestab[$prevnumber]&filenumber=$prevnumber>";
echo " << Previous</A>] \n";
}
echo " [<A HREF=$scriptname>Main Page</A>] \n";
echo " \n" ;
if ($filenumber != $nbfiles)
{
$nextnumber = $filenumber + 1;
$filestab[$nextnumber] = str_replace(" ","%20",$filestab[$nextnumber]); // Allow filenames with space characters
echo "[<A HREF=$scriptname?ishome=1&filename=$filestab[$nextnumber]&filenumber=$nextnumber>";
echo "Next >></A>]\n";
}
echo "\n\n";
}
?>
|
Donc elle doit faire des miniatures des photos du dossier ouvert mais il y a un problème je crois qu'elle travaille en racine au lieu de la faire dans le dossier... Enfin j'ai ce message d'erreur :
Citation :
Warning: getimagesize(100_1647.JPG) [function.getimagesize]: failed to open stream: No such file or directory in /mnt/167/sdb/8/d/amitienw/rub_photos_aff.php on line 50
|
Merci beaucoup de votre aide, je ne trouve pas quoi corriger... Message édité par Gakman le 01-10-2007 à 23:48:41 ---------------
-> http://gakman.free.fr
|