Sorterer ikke efter mappenavn
Jeg har bikset dette lille php script sammen, eller rettere modificeret et jeg har fundet. MEN! jeg kan ikke få det til at sortere efter navnene på mapperne. Istedet sorterer den efter hvornår mapperne er oprettet.En demo kan ses på: http://billeder.bergsorensen.dk
Php code:
// GALLERY SETTINGS
Define('DIR_CACHE', './tmp/'); // directory to store modified images (shoul have right to write files)
Define('THUMBNAIL_WIDTH', '100'); // thumbnails width
Define('THUMBNAIL_HEIGHT', '100'); // thumbnails height
Define('IMAGES_ROW', 4); // images on row
// ----------------------------------------------------------------------
$img=$_GET['img'];
if (!Is_Dir(DIR_CACHE)) {
mkdir(DIR_CACHE, 0777);
}
// IMAGE RESIZE AND SAVE TO FIT IN $new_width x $new_height
if ($img!='' && file_exists($img)) {
$w=$_GET['w'];
$h=$_GET['h'];
$thumb=strtolower(preg_replace('/\W/is', "_", "$img $w $h"));
$changed=0;
if (file_exists($img) && file_exists(DIR_CACHE.$thumb)) {
$mtime1=filemtime(DIR_CACHE.$thumb);
$mtime2=filemtime($img);
if ($mtime2>$mtime1) $changed=1;
} elseif (!file_exists(DIR_CACHE.$thumb)) {
$changed=1;
}
if ($changed) {
$filename=$img;
$new_width=(int)@$w;
$new_height=(int)@$h;
$lst=GetImageSize($filename);
$image_width=$lst[0];
$image_height=$lst[1];
$image_format=$lst[2];
if ($image_format==1) {
Header("Content-Type:image/gif");
readfile($filename);
exit;
} elseif ($image_format==2) {
$old_image=imagecreatefromjpeg($filename);
} elseif ($image_format==3) {
$old_image=imagecreatefrompng($filename);
} else {
exit;
}
if (($new_width!=0) && ($new_width<$image_width)) {
$image_height=(int)($image_height*($new_width/$image_width));
$image_width=$new_width;
// $image_height=$new_height;
}
if (($new_height!=0) && ($new_height<$image_height)) {
$image_width=(int)($image_width*($new_height/$image_height));
$image_height=$new_height;
// $image_width=$new_width;
}
// $new_image=imageCreate($image_width, $image_height); // for old GDlib
$new_image=imageCreateTrueColor($image_width, $image_height);
$white = ImageColorAllocate($new_image, 255, 255, 255);
ImageFill($new_image, 0, 0, $white);
// imagecopyresampled
// imageCopyResized (for old GDlib)
imageCopyResampled( $new_image, $old_image, 0, 0, 0, 0, $image_width, $image_height, imageSX($old_image), imageSY($old_image));
imageJpeg($new_image, DIR_CACHE.$thumb);
}
Header("Content-type:image/jpeg");
readfile(DIR_CACHE.$thumb);
exit;
}
// ----------------------------------------------------------------------
$init_dir="./";
if (IsSet($HTTP_GET_VARS['dir'])) {
$dir=$HTTP_GET_VARS['dir'];
$dir=preg_replace("/\.+/", ".", $dir);
}
if (IsSet($dir) && ($dir!=$init_dir)) {
$directory=$dir;
$tmp=array_reverse(explode('/', $dir));
array_shift($tmp);
array_shift($tmp);
$out['UP']=urlencode(implode('/', array_reverse($tmp))."/");
} else {
$directory=$init_dir;
}
$dir=opendir($directory);
$k=0;
$on_row=IMAGES_ROW;
if (file_exists($directory."files.txt")) {
$data=LoadFile($directory."files.txt");
$lines=explode("\n", $data);
for($i=0;$i<count($lines);$i++) {
$ar=explode(' ', trim($lines[$i]));
$tmp=array_shift($ar);
$descriptions[$tmp]=implode(' ', $ar);
}
}
while ($file=readdir($dir)) {
if (Is_Dir($directory."/$file") && ($file!='tmp') && ($file!='.') && ($file!='..')) {
$directories[]=array('FILENAME'=>$file, 'DIR'=>$directory, 'DESCRIPTION'=>$descriptions[$file], 'URL'=>urlencode($directory."$file/"));
}
if (!Is_file($directory."/$file")) continue;
$ext=strtolower(substr($file, -3));
if ($ext!='gif' && $ext!='jpg') continue;
$rec=array();
$rec["FILENAME"]=$file;
$size=(int)(filesize($directory."/".$file)/1024);
if ($size>1024) {
$rec["SIZE"]=(((int)($size*100/1024))/100)." Mb";
} else {
$rec["SIZE"]=$size." Kb";
}
if (IsSet($descriptions[$file])) {
$rec['DESCRIPTION']=$descriptions[$file];
}
$rec["DIR"]=$directory;
if (($k+1)%$on_row==0) {
$rec['NEXT_ROW']=1;
}
$k++;
$files[]=$rec;
}
include('./template.php');
// ----------------------------------------------------------------------
function LoadFile($filename) {
// loading file
$f=fopen("$filename", "r");
$data="";
if ($f) {
$data=fread($f, filesize($filename));
fclose($f);
}
return $data;
}
?>
TEMPLATE FIL:
<?if (IsSet($out['UP'])) {?>
<a href="?dir=<?=$out['UP']?>"><<< Up</a><br>
<?}?>
<?
if (is_Array($directories)) {
?>
<?
foreach ($directories as $v) {?>
<big><b><img src="tmp/folder.jpg" width="16" height="14"> <a href="?dir=<?=$v['URL'];?>"><?if ($v['DESCRIPTION']!='') echo $v['DESCRIPTION']; else echo $v['FILENAME'];?></a></big></b><br>
<?}?>
<?}?>
<?
if (Is_Array($files)) {
?>
<table border=0 align=left cellpadding=0>
<tr>
<?foreach ($files as $f) {?>
<td align=left valign=top>
<font face="arial"><a href="<?=$f['DIR']?><?=$f['FILENAME']?>" target=_blank><img src="?img=<?=$f['DIR']?><?=$f['FILENAME']?>&w=<?=THUMBNAIL_WIDTH?>&h=<?=THUMBNAIL_HEIGHT?>" border=0 alt="<?echo $f['DESCRIPTION'];?>"></a>
<?if ($f['DESCRIPTION']!='') echo "<br>".$f['DESCRIPTION'];?>
</td>
<?if ($f['NEXT_ROW']) echo "</tr><tr>";?>
<?}?>
</tr>
</table>
<?
}
?>
