$length) { return substr($name,0,$length); /*. "...";*/ } else return $name; } function file_size($size) { $sizename = array("Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"); return ($size ? round($size/pow(1024, ($i = floor(log($size, 1024)))), 0) . "" . $sizename[$i] : "0 Bytes"); } function getfirstImage($dirname) { $imageName = false; $ext = array("jpg", "png", "jpeg", "gif", "JPG", "PNG", "GIF", "JPEG"); if($handle = opendir($dirname)) { while(false !== ($file = readdir($handle))) { $lastdot = strrpos($file, '.'); $extension = substr($file, $lastdot + 1); if ($file[0] != '.' && in_array($extension, $ext)) break; } $imageName = $file; closedir($handle); } return($imageName); } function checkpermissions($file) { global $messages; if (substr(decoct(fileperms($file)), -1, strlen(fileperms($file))) < 4 OR substr(decoct(fileperms($file)), -3,1) < 4) $messages = "At least one file or folder has wrong permissions."; } /*$dir_folder = getcwd() . "/" . "\n";*/ /*$dir_folder = (`pwd`);*/ if (!defined("GALLERY_ROOT")) define("GALLERY_ROOT", ""); $thumbdir = rtrim("." . "/" .$_REQUEST["dir"],"/"); $thumbdir = str_replace("/..", "", $thumbdir); // Prevent looking at any up-level folders* $currentdir = GALLERY_ROOT . $thumbdir; $title = ($dir_folder);/*($currentdir);*/ /*($_GET['filename']); echo $currentdir; echo $dir_folder;*/ //----------------------- // READ FILES AND FOLDERS //----------------------- $files = array(); $dirs = array(); if ($handle = opendir($currentdir)) { while (false !== ($file = readdir($handle))) { // 1. LOAD FOLDERS /*if (is_directory($currentdir . "/" . $file)) { if ($file != "." && $file != ".." ) { checkpermissions($currentdir . "/" . $file); // Check for correct file permission // Set thumbnail to folder.jpg if found: if (file_exists("$currentdir/" . $file . "http://your-domain.com/icons/folder.jpg")) { $dirs[] = array( "name" => $file, "date" => filemtime($currentdir . "/" . $file . "/folder.jpg"), "html" => "
\"$label_loading\"
" . padstring($file, $label_max_length) . "
" );*/ /*&size=$thumb_size*/ /*} else { // Set thumbnail to first image found (if any): unset ($firstimage); $firstimage = getfirstImage("$currentdir/" . $file); if ($firstimage != "") { $dirs[] = array( "name" => $file, "date" => filemtime($currentdir . "/" . $file), "html" => "
\"$label_loading\"
" . padstring($file, $label_max_length) . "
" );*/ /*&size=$thumb_size*/ /*} else { // If no folder.jpg or image is found, then display default icon: $dirs[] = array( "name" => $file, "date" => filemtime($currentdir . "/" . $file), "html" => "
\"$label_loading\"
" . padstring($file, $label_max_length) . "
" ); } } } }*/ // 3. LOAD FILES if ($file != "." && $file != ".." && $file != "folder.jpg") { // JPG, GIF and PNG if (preg_match("/.jpg$|.gif$|.png$/i", $file)) { checkpermissions($currentdir . "/" . $file); /*$srimg = ceil(sizeof($files) / $thumbs_pr_page);*/ $srimg = ($currentdir . "/" . $file); /*$cutname = (`echo '$file' | cut -b1-21`);*/ $cutname = ( padstring($file, 18) ); /*$sizeimg = trim(`du -sh $file | awk '{print $1}'`);*/ /*$sizeimg = ($currentdir . "/" . $file) ;*/ $sizeimg = file_size(filesize($srimg)); list($width, $height, $attr) = getimagesize($srimg); /*$sizeimg = trim(`ls -lha '$file' | awk '{print $5}'`);*/ /*echo $sizeimg;*/ /*echo $file;*/ /*$rezz = trim(`exiv2 pr '$file' | grep "Размер изображения:" | awk '{print $3,$4,$5}'`);*/ $files[] = array ( /*$cutname = ( padstring($file, 18) ),*/ /*$rezz = trim(`exiv2 pr '$file' | grep "Размер изображения:" | awk '{print $3,$4,$5}'`),*/ /*$sizeimg = trim(`du -sh $file | awk '{print $1}'`),*/ /*$sizeimg = round(filesize($file) / 1024),*/ /*list($width, $height, $attr) = getimagesize($srimg),*/ /*$rezz = filesize($file),*/ "name" => $file, "date" => filemtime($currentdir . "/" . $file), "size" => $sizeimg, /*print_r($sizeimg),*/ /*"html" => $sizeimg,*/ "html" => "
\"$file\"
$cutname | $width x $height ($sizeimg)
" ); } // Other filetypes $extension = ""; if (preg_match("/.pdf$/i", $file)) $extension = "PDF"; // PDF if (preg_match("/.zip$/i", $file)) $extension = "ZIP"; // ZIP archive if (preg_match("/.rar$|.r[0-9]{2,}/i", $file)) $extension = "RAR"; // RAR Archive if (preg_match("/.tar$/i", $file)) $extension = "TAR"; // TARball archive if (preg_match("/.gz$/i", $file)) $extension = "GZ"; // GZip archive if (preg_match("/.doc$|.docx$/i", $file)) $extension = "DOCX"; // Word if (preg_match("/.ppt$|.pptx$/i", $file)) $extension = "PPTX"; //Powerpoint if (preg_match("/.xls$|.xlsx$/i", $file)) $extension = "XLXS"; // Excel if ($extension != "") { $srfile = ($currentdir . "/" . $file); $sizefile = file_size(filesize($srfile)); $cutname = ( padstring($file, 26) ); /*$cutname = (`echo '$file' | cut -b1-37`); $sizefile = trim(`ls -lha '$srfile' | awk '{print $5}'`);*/ $files[] = array ( "name" => $file, "date" => filemtime($currentdir . "/" . $file), "size" => filesize($currentdir . "/" . $file), "html" => "
\"$file\"
$cutname | ($sizefile)
"); } } } /*if (sizeof($dirs) + sizeof($files) > $thumbs_pr_page) { $page_navigation .= "$label_page "; for ($i=1; $i <= ceil((sizeof($files) + sizeof($dirs)) / $thumbs_pr_page); $i++) { if ($_GET["page"] == $i) $page_navigation .= " " . $i . ""; else $page_navigation .= " " . $i . "";*/ /*$page_navigation .= "
◄ back" . $i . "
";*/ /*if ($i != ceil((sizeof($files) + sizeof($dirs)) / $thumbs_pr_page)) $page_navigation .= "

|

"; } //Insert link to view all images if ($_GET["page"] == "all") $page_navigation .= " | $label_all";*/ /*" | $label_all";*/ /*else $page_navigation .= "

|

$label_all";*/ /*print_r($x);*/ /*$url = $files[$i -1]['name']; }*/ closedir($handle); } else die("ERROR: Could not open $currentdir for reading!"); //----------------------- // SORT FILES AND FOLDERS //----------------------- if (sizeof($files) > 0) { foreach ($files as $key => $row) { if($row["name"] == "") unset($files[$key]); //Delete empty array entries $name[$key] = strtolower($row['name']); $date[$key] = strtolower($row['date']); $size[$key] = strtolower($row['size']); } if (strtoupper($sortdir_files) == "DESC") array_multisort($$sorting_files, SORT_DESC, $name, SORT_ASC, $files); else array_multisort($$sorting_files, SORT_ASC, $name, SORT_ASC, $files); } //----------------------- // OFFSET DETERMINATION //----------------------- $offset_start = ($_GET["page"] * $thumbs_pr_page) - $thumbs_pr_page; if (!isset($_GET["page"])) $offset_start = 0; $offset_end = $offset_start + $thumbs_pr_page; if ($offset_end > sizeof($dirs) + sizeof($files)) $offset_end = sizeof($dirs) + sizeof($files); if ($_GET["page"] == "all") { $offset_start = 0; $offset_end = sizeof($dirs) + sizeof($files); } //----------------------- // PAGE NAVIGATION //----------------------- if (!isset($_GET["page"])) $_GET["page"] = 1; if (sizeof($dirs) + sizeof($files) > $thumbs_pr_page) { $page_navigation .= "$label_page "; for ($i=1; $i <= ceil((sizeof($files) + sizeof($dirs)) / $thumbs_pr_page); $i++) { if ($_GET["page"] == $i) $page_navigation .= " " . $i . ""; else $page_navigation .= " " . $i . ""; /*$page_navigation .= "
◄ back" . $i . "
";*/ if ($i != ceil((sizeof($files) + sizeof($dirs)) / $thumbs_pr_page)) $page_navigation .= "

|

"; } //Insert link to view all images if ($_GET["page"] == "all") $page_navigation .= " | $label_all"; /*" | $label_all";*/ else $page_navigation .= "

|

$label_all"; $current_page = $_GET['page']; $next_page = $current_page + 1; $prev_page = $current_page - 1; $first_page = 1; $last_page = $i - 1; if ($prev_page > 0) $page_back .= "
◄ back
"; else $page_back .= "
▼ last
"; if ($next_page > $last_page) $page_next .= "
first ▲
"; else $page_next .= "
next ►
"; } //----------------------- // DISPLAY FOLDERS //----------------------- /*if (count($dirs) + count($files) == 0) { $thumbnails .= "$label_noimages"; //Display 'no images' text if($currentdir == "photos") $messages = "It looks like you have just installed MiniGal Nano. Please run the system check tool"; } $offset_current = $offset_start; for ($x = $offset_start; $x < sizeof($dirs) && $x < $offset_end; $x++) { $offset_current++; $thumbnails .= $dirs[$x]["html"]; }*/ //----------------------- // DISPLAY FILES //----------------------- for ($i = $offset_start - sizeof($dirs); $i < $offset_end && $offset_current < $offset_end; $i++) { if ($i >= 0) { $offset_current++; $thumbnails .= $files[$i]["html"]; } } //Include hidden links for all images AFTER current page so lightbox is able to browse images on different pages /*for ($y = $i; $y < sizeof($files); $y++) { $page_navigation .= ""; }*/ //Get current time as we did at start $mtime = microtime(); $mtime = explode(" ",$mtime); $mtime = $mtime[1] + $mtime[0]; //Store end time in a variable $tend = $mtime; //Calculate the difference $totaltime = ($tend - $tstart); //Output result $ptime = number_format($totaltime, 4, '.', ''); /*echo 'Page generated in '.$totaltime.' seconds.'."\n";*/ /*$ptime = ("Page was generated in %.3f seconds.", $totaltime);*/ /*echo ($ptime);*/ //PROCESS TEMPLATE FILE if(GALLERY_ROOT != "") $templatefile = GALLERY_ROOT . "/var/www/your-domain.com/template/integrate.html"; else $templatefile = "/var/www/your-domain.com/template/" . $templatefile . ".html"; if(!$fd = fopen($templatefile, "r")) { echo "Template $templatefile not found!"; exit(); } else { $template = fread ($fd, filesize ($templatefile)); fclose ($fd); $template = stripslashes($template); ; $template = preg_replace("/<% title %>/", $title, $template); $template = preg_replace("/<% messages %>/", $messages, $template); $template = preg_replace("/<% author %>/", $author, $template); $template = preg_replace("/<% gallery_root %>/", GALLERY_ROOT, $template); $template = preg_replace("/<% images %>/", "$images", $template); $template = preg_replace("/<% thumbnails %>/", "$thumbnails", $template); $template = preg_replace("/<% breadcrumb_navigation %>/", "$breadcrumb_navigation", $template); $template = preg_replace("/<% page_navigation %>/", "$page_navigation", $template); $template = preg_replace("/<% page_back %>/", "$page_back", $template); $template = preg_replace("/<% page_next %>/", "$page_next", $template); $template = preg_replace("/<% bgcolor %>/", "$backgroundcolor", $template); /* $template = preg_replace("/<% gallery_width %>/", "$gallery_width", $template);*/ $template = preg_replace("/<% version %>/", "$version", $template); $template = preg_replace("/<% page_time %>/", "$ptime", $template); echo "$template"; } ?>