Sortierung in Bildergalerie

Robert Steichele

Erfahrenes Mitglied
Hallo zusammen,

habe mir heute das Skript "FHImage" heruntergeladen, eingerichtet und getestet. Das Skript ist nahezu perfekt für mich. Es liest alle Bilder eines Ordners aus und listet sie in tabellarischer Form auf. Per Klick werden die einzelnen Bilder vergrößert ...
Mein Problem ist nun, dass es nur möglich ist das älteste Bild zuerst anzuzeigen. Letztendlich soll aber ganz vorne das aktuellste Bild stehen.

Hier ist die Funktion, welche die Bilder ausliest und sortiert. Im unteren Bereich werden zwei Variablen abgefragt, die zentral abgelegt sind und folgendes steuern sollen:
$g_sortByFn = sortieren nach Dateiname
$g_insensitive_sort = Case insensitive sortieren

Die Bilder haben folgende Dateinamen:

WEB7-2010-07-14-12_45_45.jpg

WEB7 ist unsere siebte Webcam (alle Bilder dieser Webcam beginnen so), der Rest ist das Datum und die Uhrzeit. Die Sortierung sollte als nach dem Dateinamen möglich sein.

Hier die Funktion:

PHP:
/*
 * read file / dir names from a directory 
 */
function readFiles($aPath, &$aFiles, &$aIsDir)
{

  global $g_sortByFn, $g_insensitive_sort;
  $confdir = "imgconfig";

  $dir_handle = @opendir($aPath) or die("Unable to open $aPath");

  while($file = readdir($dir_handle)) {
    $fullpath = $aPath.$file;

    if(is_dir($fullpath)) {
      if($file != '.' && $file != '..' && $file != $confdir) {
        $aFiles[] = $file;
        $tmparray = array("_".$file => true);
        $aIsDir = array_merge($aIsDir, $tmparray);
      }
    } else {
      $ext = substr($file, -4);
      if($file[0] != '.' && (strtolower($ext) == '.jpg')) {
        $aFiles[] = $file;
        $tmparray = array("_".$file => false);
        $aIsDir = array_merge($aIsDir, $tmparray);
      }
    }
    if($g_sortByFn == 'check') {
	    if($g_insensitive_sort == 'check') {
	  	  usort($aFiles, "cicmp");
	    } 
	    else {
        sort($aFiles);
	    }
    }
  }

  closedir($dir_handle);
}


Viele Grüße
Robert
 
PHP:
if($g_sortByFn == 'check') {
        if($g_insensitive_sort == 'check') {
            usort($aFiles, "cicmp");
        } 
        else {
        sort($aFiles);
        }
    }

Statt sort könntest du mal rsort() probieren.
Und zu usort können wir erst was sagen wenn wir wissen wie die cicmp Funktion aussieht.
 
Zurück