Hola. Tengo hecha una galeria de fotos en php con partes de una galeria prefabricada que me descargué. Consta de dos partes, una es para subir las imagenes y crear los thumbs en una carpeta para la galeria y la otra abre la carpeta donde están y la muestra en una tabla.
Mi problema es que muestra las imagenes en dicha tabla pero sin ningun orden aparente, lo he mirado y no es ni por tamaño ni fecha ni nombre.
Son dos archivos index.php y gallerybuilder.php. (pongo solo lo importante)
Index.php
<?php
// el archivo empieza por
$default = "";
include("galleryBuilder.php");
?>
// y el codigo de la tabla donde aparecen las imagenes
<table align="center">
<?php createGallery("Upload/pics/" . $a, "Upload/pics/" . $a . "thumbs/", 120, 80, 5, FALSE); ?>
</table>
Y el Gallerybuilder.php
<?php
if($_GET["a"] != "")
{
$a = $_GET["a"] . "/";
}
else
{
$a = $default . "/";
}
// This is a very basic way of determining whether to insert
// an extra trailing slash or not
function createGallery($gF, $tF, $tW, $tH, $nR, $nW)
{
// $gF is the path to the folder that contains the images
// example: "gallery/"
// $tF is the path to the folder that contains the thumbnails of the images
// example: "gallery/thumbs/"
// $tW is the desired width of the thumbnails
// example: 120
// $tH is the maximum desired height of the thumbnails
// example: 80
// $nR is the desired number of images in each row of the table
// example: 8
// $nW is a boolean value. If set to TRUE, opens full sizes in new window
// example: FALSE
echo " <tr>\n";
buildThumbs($gF, $tF, $tW, $tH);
// call to another function to generate the thumbs
$open = opendir($gF);
// open the directory to the gallery folder
$i = 1;
$j = 1;
// we use $i and $j to loop alternating table cells and the number of cells
// per row
while(FALSE !== ($fileName = readdir($open)))
{
$info = pathinfo($gF . $fileName);
// get info for the filename
if(strtolower($info["extension"]) == "jpe" || strtolower($info["extension"]) == "jpeg" || strtolower($info["extension"]) == "jpg" || strtolower($info["extension"]) == "gif" || strtolower($info["extension"]) == "png")
{
// this case-insensitively checks for all possible JPEG, GIF, and PNG extensions and only
// returns files that meet these conditions
echo " <td width=\"" . $tW . "\" height=\"" . $tH . "\" class=\"galleryCell";
if($i == 1)
{
// if $i is 1
echo "1";
$i = 2;
}
else
{
echo "2";
$i = 1;
}
echo "\"><a";
if($nW == TRUE)
{
echo " target=\"_blank\"";
}
echo " href=\"" . $gF . $fileName . "\" title=\"" . $fileName . "\"><img class=\"galleryImage\" src=\"" . $tF . $fileName . "\" border=\"0\"></a></td>\n";
if($j == $nR)
{
// if $j is the number or cells per row...
echo " </tr>\n <tr>\n";
$j = 1;
}
else
{
$j++;
}
}
}
closedir($open);
// close the directory
echo " </tr>\n";
}
function buildThumbs($gF, $tF, $tW, $tH)
{
// $gF is the path to the folder that contains the images
// example: "gallery/"
// $tF is the path to the folder that contains the thumbnails of the images
// example: "gallery/thumbs/"
// $tW is the desired width of the thumbnails
// example: 120
// $tH is the maximum desired height of the thumbnails
// example: 80
$open = opendir($gF);
// open the directory to the gallery folder
while(FALSE !== ($fileName = readdir($open)))
{
// loop throught the entire directory
if(!file_exists($tF . $fileName))
{
// there is NOT already a thumbnail with the same name, so let's create one!
$info = pathinfo($gF . $fileName);
// get file info for each file
if(strtolower($info["extension"]) == "jpe" || strtolower($info["extension"]) == "jpeg" || strtolower($info["extension"]) == "jpg" || strtolower($info["extension"]) == "gif" || strtolower($info["extension"]) == "png")
{
// this really long line asks if the lowercase version of the extension ends in each JPEG format (jpe, jpeg, jpg), a GIF format (gif), or a PNG format (png), all of our valid image types
if(strtolower($info["extension"]) == "jpe" || strtolower($info["extension"]) == "jpeg" || strtolower($info["extension"]) == "jpg")
{
// this narrows it down--the image must be a JPEG
$thumbnail = imagecreatefromjpeg($gF . $fileName);
}
if(strtolower($info["extension"]) == "gif")
{
// it must be a GIF
$thumbnail = imagecreatefromgif($gF . $fileName);
}
if(strtolower($info["extension"]) == "png")
{
// create a PNG
$thumbnail = imagecreatefrompng($gF . $fileName);
}
$oWidth = imagesx($thumbnail);
// original width
$oHeight = imagesy($thumbnail);
// original height
$tWidth = $tW;
// the new thumbnail will have the specified width
$tHeight = floor($oHeight * ($tWidth / $oWidth));
// calculate the thumbnail height by multiplying the original height by the width ratio
if($tHeight > $tH)
{
// if the image is still too tall...
$tHeight = $tH;
// set the height to the max height
$tWidth = floor($oWidth * ($tHeight / $oHeight));
// calculate the thumnail width by multiplying the original width by the height ratio
}
$tempImage = imagecreatetruecolor($tWidth, $tHeight);
// create a temporary image (it's blank right now)
imagecopyresized($tempImage, $thumbnail, 0, 0, 0, 0, $tWidth, $tHeight, $oWidth, $oHeight);
// copy and resize the full-size image into a thumbnail - see PHP.net's imagecopyresized() function for details
if(strtolower($info["extension"]) == "jpe" || strtolower($info["extension"]) == "jpeg" || strtolower($info["extension"]) == "jpg")
{
// save a JPG thumbnail!
$thumbnail = imagejpeg($tempImage, $tF . $fileName);
}
if(strtolower($info["extension"]) == "gif")
{
// save a GIF thumbnail!
$thumbnail = imagegif($tempImage, $tF . $fileName);
}
if(strtolower($info["extension"]) == "png")
{
// save a PNG thumbnail!
$thumbnail = imagepng($tempImage, $tF . $fileName);
}
}
}
}
closedir($open);
// close the directory
}
function listAlbums($gF, $aS, $dF)
{
// $gF is the path to the folder that contains the subfolders
// example: "gallery/"
// $aS is the separator between each album title
// example: " • "
// $dF is the default folder that we wish to exclude from the list
// example: "default_gallery"
$open = opendir($gF);
// open the directory to the gallery folder
$i = 1;
$toReturn = "";
// we use $i to loop through the count and $toReturn to come
// up with a full album list to echo later
while(FALSE !== ($fileName = readdir($open)))
{
if(is_dir($gF . $fileName) && $fileName != "." && $fileName != ".." && $fileName != $dF)
{
// if the file is actually a directory... ("." and ".." are not directories) and NOT the default
$displayName = str_replace("_", " ", $fileName);
// change all underscores to spaces in the display name
$displayName = ucwords($displayName);
// capitalize the first letter of each word in the display name
$toReturn = $toReturn . "<a href=\"?a=" . $fileName . "\">" . $displayName . "</a>" . $aS;
// add the album name, and add a separator
}
}
$aS_length = strlen($aS);
// here we figure out how many characters $aS is
$aS_length = $aS_length * -1;
// get the negative number
echo substr_replace($toReturn, "", $aS_length);
// this is a messy but understandable way to remove the last
// album separator from the list
}
?>
Lo que quiero es que "opendir" ordene las imagenes por la fecha en la que han subido las imagenes. Como lo hago?
Gracias de antemano.
Lo que te sugiero yo es que lo hagas pasar por una base de datos....te vas a ahorrar muchas molestias y tendrás todo mas organizado..
Saludos
Lo intentare a ver que tal, que acabo de empezar con estas cosas y aun ando un poco pez. Gracias.