Ordenar galería de imagenes por fecha.

Iniciado por Joystickoso, 21 Abril 2009, 22:34 PM

0 Miembros y 1 Visitante están viendo este tema.

Joystickoso

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/"120805FALSE); ?>
              </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$thumbnail0000$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: " &bull; "

 // $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.

#!drvy

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

Joystickoso

Lo intentare a ver que tal, que acabo de empezar con estas cosas y aun ando un poco pez. Gracias.