uAlbum could not create thumbnail directory
Set permissons using CHMOD(777) or contact your server admin");
define("FILE_PERMISSION_PROBLEM_TEXT",
"uAlbum could not write thumbnails
Set permissons using CHMOD(777) or contact your server admin");
define("GDLIB_PNG_PROBLEM_TEXT",
"Warning: You have not installed GD library or PNG file type is not supported");
define("GDLIB_GIF_PROBLEM_TEXT",
"Warning: You have not installed GD library or GIF file type is not supported");
define("GDLIB_JPEG_PROBLEM_TEXT",
"Warning: You have not installed GD library or JPEG file type is not supported");
// image sizes (experimental, do not change)
define("LANDSCAPE_X",600);
define("LANDSCAPE_Y",450);
define("VERTICAL_X",337);
define("VERTICAL_Y",450);
// SCRIPT AREA ------------------------------------------------------------------------------------------------------
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-cache, must-revalidate');
header('Pragma: no-cache');
// --- FUNCTIONS ---
function resizeImage($source,$destination,$x_size,$y_size)
{
$thumbnail=imagecreatetruecolor($x_size,$y_size); //thumbnail creating
$path_parts = pathinfo($source); // file recognize process
$extension=$path_parts["extension"];
$extension = strtolower($extension);
switch ($extension)
{
case "png":
if (!function_exists("ImageCreateFromPNG") or !function_exists("ImagePNG")) die (GDLIB_PNG_PROBLEM_TEXT);
$img=ImageCreateFromPNG($source);
imageCopyResampled($thumbnail,$img,0,0,0,0,$x_size,$y_size,ImageSX($img),ImageSY($img));
if (!@ImagePNG($thumbnail,$destination)) die(FILE_PERMISSION_PROBLEM_TEXT);
break;
case "gif":
if (!function_exists("ImageCreateFromGIF") or !function_exists("ImageGIF")) die (GDLIB_GIF_PROBLEM_TEXT);
$img=ImageCreateFromGIF($source);
imageCopyResampled($thumbnail,$img,0,0,0,0,$x_size,$y_size,ImageSX($img),ImageSY($img));
if (!@ImageGIF($thumbnail,$destination)) die(FILE_PERMISSION_PROBLEM_TEXT);;
break;
default:
if (!function_exists("ImageCreateFromJPEG") or !function_exists("ImageJPEG")) die (GDLIB_JPEG_PROBLEM_TEXT);
$img=ImageCreateFromJPEG($source);
imageCopyResampled($thumbnail,$img,0,0,0,0,$x_size,$y_size,ImageSX($img),ImageSY($img));
if (!@ImageJPEG($thumbnail,$destination)) die(FILE_PERMISSION_PROBLEM_TEXT);;
break;
}
}
function dateSortDesc($a, $b)
{
return (@filemtime($b) - @filemtime($a));
}
function dateSortAsc($a, $b)
{
return (@filemtime($a) - @filemtime($b));
}
function readDirectory($dir)
{
$dir = OpenDir($dir); // open script (.) directory
$directories = Array(); // initializing directories array
$files = Array(); // initializing files array
while ($file = ReadDir($dir)) // loading all files in the script directory
{
if (!Is_Dir($file)) // testing if file(founded object) is directory
{
$path_parts = pathinfo($file); // file recognize process
$extension=$path_parts["extension"];
$extension = strtolower($extension);
if ($extension=="jpg" or $extension=="jpeg" or $extension=="png" or $extension=="gif")
{
$files[] = $file; // add file into array
}
}
elseif($file!="." and $file!=".." and $file!=THUMBNAIL_DIRECTORY)
{ // object is directory and we dont want show thumbnail, . or .. directories
$directories[] = $file; // add directory into array
}
}
CloseDir($dir); // closing directory
$output['directories'] = $directories;
$output['files'] = $files;
return $output;
}
// --- SCRIPT ---
$directory_info = readDirectory('.');
$directories = $directory_info['directories'];
$files = $directory_info['files'];
// creating thumbnail directory
if (!@OpenDir(THUMBNAIL_DIRECTORY)){
if (!@mkdir(THUMBNAIL_DIRECTORY,THUMBNAIL_DIRECTORY_CHMOD)) die (DIRECTORY_PERMISSION_PROBLEM_TEXT);
}
// sorting
if (SORT_BY_DATE==true)
{
if (OLDER_FIRST==true)
{
usort($files, "dateSortAsc");
usort($directories, "dateSortAsc");
}
else
{
usort($files, "dateSortDesc");
usort($directories, "dateSortDesc");
}
}
else
{
natsort($files);
sort($directories);
}
reset($files);
reset($directories);
// --- FILE OPERATIONS ---
$file_list=""; // string varibale contains filenames
$thumbnail_list=""; // string variable contains construction of thumbnails list (left panel)
$file_list_size=""; // string variable contains image orientation
$i=0;
//file array iterateing and generating thumbnails (if doesnt exist) and JS arrays
foreach ($files as $file)
{
if (!file_exists(THUMBNAIL_DIRECTORY."/".$file)) resizeImage($file,THUMBNAIL_DIRECTORY."/".$file,40,40);
if ($i!=0 && $i%4==0) $thumbnail_list.=""; // generating IE space after every two thumbnails
$thumbnail_list.="
\n";
$resolution=GetImageSize($file); // image resolution detection
if (($resolution[0]>$resolution[1]) and ($resolution[0]!=LANDSCAPE_X or $resolution[1]!=LANDSCAPE_Y) and RESIZE_ORIGINAL_IMAGES==true)
{
resizeImage($file,$file,LANDSCAPE_X,LANDSCAPE_Y);
}
elseif (($resolution[0]<=$resolution[1]) and ($resolution[0]!=VERTICAL_X or $resolution[1]!=VERTICAL_Y) and RESIZE_ORIGINAL_IMAGES==true)
{
resizeImage($file,$file,VERTICAL_X,VERTICAL_Y);
}
$file_list.="'".$file."',"; // generating array of filenames
}
//last dash removing
$file_list=substr($file_list, 0, -1);
$file_list_size=substr($file_list_size, 0, -1);
// --- DIRECTORY OPERATIONS ---
$directory_list = Array();
foreach ($directories as $directory)
{
$subdirectory_info = readDirectory($directory);
$subdirectory_files_count = count($subdirectory_info['files']); //number of image files in subdirectory
$subdirectory_name = str_replace($replacement_original, $replacement_new, $directory);
$subdirectory_date = date(SUBDIRECTORY_THUMBNAIL_DESCRIPTION_DATE_FORMAT,@filemtime($directory));
if ($subdirectory_files_count!=0) // some image files was founded in subdirectory
{
// sorting files in subdirectory
if (SORT_BY_DATE==true)
{
if (OLDER_FIRST==true)
{
usort($subdirectory_info['files'], "dateSortAsc");
}
else
{
usort($subdirectory_info['files'], "dateSortDesc");
}
}
else
{
natsort($subdirectory_info['files']);
}
$path_parts = pathinfo($subdirectory_info['files'][0]); // file recognize process
$extension=strtolower($path_parts["extension"]);
// generating subdirectory thumbnail
if (!file_exists(THUMBNAIL_DIRECTORY."/".$directory.".".$extension)) resizeImage($directory."/".$subdirectory_info['files'][0],THUMBNAIL_DIRECTORY."/".$directory.".".$extension,90,90);
$directory_list[]= "