diff --git a/config-default.php b/config-default.php
index d85c80e..81b0530 100755
--- a/config-default.php
+++ b/config-default.php
@@ -4,49 +4,49 @@ MINIGAL NANO, a simple PHP/HTML/CSS based image gallery script
This script and included files are subject to licensing from Creative Commons (http://creativecommons.org/licenses/by-sa/2.5/)
You may use, edit and redistribute this script, as long as you pay tribute to the original author by NOT removing the linkback to www.minigal.dk ("Powered by MiniGal Nano x.x.x")
-* Website : https://github.com/sebsauvage/MinigalNano/
-* Support : https://github.com/sebsauvage/MinigalNano/issues and by mail (contact [@] tomcanac [.] com)
+ * Website : https://github.com/sebsauvage/MinigalNano/
+ * Support : https://github.com/sebsauvage/MinigalNano/issues and by mail (contact [@] tomcanac [.] com)
MiniGal Nano is based on an original work by Thomas Rybak (© 2010)
Original support board : www.minigal.dk and www.minigal.dk/forum
Please enjoy this free script!
-*/
+ */
// EDIT SETTINGS BELOW TO CUSTOMIZE YOUR GALLERY
-$thumbs_pr_page = "39"; // Number of thumbnails on a single page
-$gallery_width = "80%"; // Gallery width. Eg: "500px" or "70%"
-$backgroundcolor = "white"; // This provides a quick way to change your gallerys background to suit your website. Use either main colors like "black", "white", "yellow" etc. Or HEX colors, eg. "#AAAAAA"
-$templatefile = "board"; // Template filename (must be placed in 'templates' folder)
-$title = "MiniGal Nano"; // Text to be displayed in browser titlebar
-$author = "John Doe";
-$folder_color = "black"; // Color of folder icons: blue / black / vista / purple / green / grey
-$sorting_folders = "name"; // Sort folders by: [name][date]
-$sorting_files = "name"; // Sort files by: [name][date][size]
-$sortdir_folders = SORT_ASC; // Sort direction of folders: SORT_ASC / SORT_DESC
-$sortdir_files = SORT_ASC; // Sort direction of files: SORT_ASC / SORT_DESC
-$lazyload = 1; // 0 is pagination, 1 is display all pictures on one page
-$SkipObjects = array('aFolder', 'aFile.ext'); //Those files and folders will not be displayed (affects the page and the RSS feed)
+$thumbs_pr_page = "39"; // Number of thumbnails on a single page
+$gallery_width = "80%"; // Gallery width. Eg: "500px" or "70%"
+$backgroundcolor = "white"; // This provides a quick way to change your gallerys background to suit your website. Use either main colors like "black", "white", "yellow" etc. Or HEX colors, eg. "#AAAAAA"
+$templatefile = "board"; // Template filename (must be placed in 'templates' folder)
+$title = "MiniGal Nano"; // Text to be displayed in browser titlebar
+$author = "John Doe";
+$folder_color = "black"; // Color of folder icons: blue / black / vista / purple / green / grey
+$sorting_folders = "name"; // Sort folders by: [name][date]
+$sorting_files = "name"; // Sort files by: [name][date][size]
+$sortdir_folders = SORT_ASC; // Sort direction of folders: SORT_ASC / SORT_DESC
+$sortdir_files = SORT_ASC; // Sort direction of files: SORT_ASC / SORT_DESC
+$lazyload = 1; // 0 is pagination, 1 is display all pictures on one page
+$SkipObjects = array('aFolder', 'aFile.ext'); //Those files and folders will not be displayed (affects the page and the RSS feed)
//LANGUAGE STRINGS
-$label_home = "Home"; // Name of home link in breadcrumb navigation
-$label_new = "New"; // Text to display for new images. Use with $display_new variable
-$label_page = "Page"; // Text used for page navigation
-$label_all = "All"; // Text used for link to display all images in one page
-$label_noimages = "No images... yet !"; // Empty folder text
-$label_noimages_advice = "Use your FTP to upload some picture !";
-$label_loading = "Loading..."; // Thumbnail loading text
-$breadcrumb_separator = ">"; // Breadcrumb parts separator
+$label_home = "Home"; // Name of home link in breadcrumb navigation
+$label_new = "New"; // Text to display for new images. Use with $display_new variable
+$label_page = "Page"; // Text used for page navigation
+$label_all = "All"; // Text used for link to display all images in one page
+$label_noimages = "No images... yet !"; // Empty folder text
+$label_noimages_advice = "Use your FTP to upload some picture !";
+$label_loading = "Loading..."; // Thumbnail loading text
+$breadcrumb_separator = ">"; // Breadcrumb parts separator
//RSS SETTINGS
-$description = "MiniGal Nano";
-$nb_items_rss = 25; // Number of elements to display in the feed. If you add a lot of pictures at the time, consider increasing this number
-$rss_refresh_interval = 60;// Time, in seconds, between two RSS refresh. for example, 3600 = 1update max per hour, 86400 = 1/day.
-$SkipExts = array('html', 'txt', 'php', "gitignore"); //Files with one of this extension will not be displayed on the RSS feed
+$description = "MiniGal Nano";
+$nb_items_rss = 25; // Number of elements to display in the feed. If you add a lot of pictures at the time, consider increasing this number
+$rss_refresh_interval = 60; // Time, in seconds, between two RSS refresh. for example, 3600 = 1update max per hour, 86400 = 1/day.
+$SkipExts = array('html', 'txt', 'php', "gitignore"); //Files with one of this extension will not be displayed on the RSS feed
//ADVANCED SETTINGS
-$thumb_size = 320; //Thumbnail height/width (square thumbs). Changing this will most likely require manual altering of the template file to make it look properly!
-$label_max_length = 40; //Maximum chars of a folder name that will be displayed on the folder thumbnail
-$display_exif = 0; //Take care, even if not diplayed EXIF are still readable for visitors. May be a good idea to erase EXIF data...
-$display_filename = 0; //Show file names below the pictures
+$thumb_size = 320; //Thumbnail height/width (square thumbs). Changing this will most likely require manual altering of the template file to make it look properly!
+$label_max_length = 40; //Maximum chars of a folder name that will be displayed on the folder thumbnail
+$display_exif = 0; //Take care, even if not diplayed EXIF are still readable for visitors. May be a good idea to erase EXIF data...
+$display_filename = 0; //Show file names below the pictures
?>
diff --git a/config.php b/config.php
index 532fcbb..4faff8d 100755
--- a/config.php
+++ b/config.php
@@ -4,8 +4,8 @@ MINIGAL NANO, a simple PHP/HTML/CSS based image gallery script
This script and included files are subject to licensing from Creative Commons (http://creativecommons.org/licenses/by-sa/2.5/)
You may use, edit and redistribute this script, as long as you pay tribute to the original author by NOT removing the linkback to www.minigal.dk ("Powered by MiniGal Nano x.x.x")
-* Website : https://github.com/sebsauvage/MinigalNano/
-* Support : https://github.com/sebsauvage/MinigalNano/issues and by mail (contact [@] tomcanac [.] com)
+ * Website : https://github.com/sebsauvage/MinigalNano/
+ * Support : https://github.com/sebsauvage/MinigalNano/issues and by mail (contact [@] tomcanac [.] com)
MiniGal Nano is based on an original work by Thomas Rybak (© 2010)
Original support board : www.minigal.dk and www.minigal.dk/forum
@@ -15,7 +15,7 @@ Please enjoy this free script!
Upgraded to https://github.com/sebsauvage/MinigalNano
by Sébastien SAUVAGE.
-*/
+ */
// INSERT HERE YOUR CUSTOMIZED SETTINGS
// for the list of possible options, peruse config-default.php
diff --git a/createthumb.php b/createthumb.php
index e2502d0..48fbd5e 100644
--- a/createthumb.php
+++ b/createthumb.php
@@ -15,23 +15,37 @@ Community: www.minigal.dk/forum
Please enjoy this free script!
Version 0.3.5 modified by Sebastien SAUVAGE (sebsauvage.net):
- - Added thumbnail cache (reduces server CPU load, server bandwith and speeds up client page display).
- - Thumbnails are now always in JPEG even if the source image is PNG or GIF.
+- Added thumbnail cache (reduces server CPU load, server bandwith and speeds up client page display).
+- Thumbnails are now always in JPEG even if the source image is PNG or GIF.
USAGE EXAMPLE:
File: createthumb.php
Example:
-*/
+ */
error_reporting(0);
$get_filename = $_GET['filename'];
$get_size = @$_GET['size'];
-if (empty($get_size)) $get_size = 120;
-if (preg_match("/^\/.*/i", $get_filename)) die("Unauthorized access !");
-if (preg_match("/.jpe?g$/i", $get_filename)) $get_filename_type = "JPG";
-if (preg_match("/.gif$/i", $get_filename)) $get_filename_type = "GIF";
-if (preg_match("/.png$/i", $get_filename)) $get_filename_type = "PNG";
+if (empty($get_size)) {
+ $get_size = 120;
+}
+
+if (preg_match("/^\/.*/i", $get_filename)) {
+ die("Unauthorized access !");
+}
+
+if (preg_match("/.jpe?g$/i", $get_filename)) {
+ $get_filename_type = "JPG";
+}
+
+if (preg_match("/.gif$/i", $get_filename)) {
+ $get_filename_type = "GIF";
+}
+
+if (preg_match("/.png$/i", $get_filename)) {
+ $get_filename_type = "PNG";
+}
/**
* Vertical flip
@@ -41,9 +55,8 @@ function flipVertical(&$img) {
$size_x = imagesx($img);
$size_y = imagesy($img);
$temp = imagecreatetruecolor($size_x, $size_y);
- $x = imagecopyresampled($temp, $img, 0, 0, 0, ($size_y-1), $size_x, $size_y, $size_x, 0-$size_y);
- if ($x)
- {
+ $x = imagecopyresampled($temp, $img, 0, 0, 0, ($size_y - 1), $size_x, $size_y, $size_x, 0 - $size_y);
+ if ($x) {
$img = $temp;
} else {
die("Unable to flip image");
@@ -58,9 +71,8 @@ function flipHorizontal(&$img) {
$size_x = imagesx($img);
$size_y = imagesy($img);
$temp = imagecreatetruecolor($size_x, $size_y);
- $x = imagecopyresampled($temp, $img, 0, 0, ($size_x-1), 0, $size_x, $size_y, 0-$size_x, $size_y);
- if ($x)
- {
+ $x = imagecopyresampled($temp, $img, 0, 0, ($size_x - 1), 0, $size_x, $size_y, 0 - $size_x, $size_y);
+ if ($x) {
$img = $temp;
} else {
die("Unable to flip image");
@@ -75,14 +87,13 @@ function sanitize($name) {
}
// Make sure the "thumbs" directory exists.
-if (!is_dir('thumbs') && is_writable('.'))
-{
- mkdir('thumbs',0700);
+if (!is_dir('thumbs') && is_writable('.')) {
+ mkdir('thumbs', 0700);
}
// Thumbnail file name and path.
// (We always put thumbnails in jpg for simplification)
-$thumbname = 'thumbs/'.sanitize($get_filename).'.jpg';
+$thumbname = 'thumbs/' . sanitize($get_filename) . '.jpg';
if (file_exists($thumbname)) // If thumbnail exists, serve it.
{
@@ -90,7 +101,7 @@ if (file_exists($thumbname)) // If thumbnail exists, serve it.
$cacheContent = fread($fd, filesize($thumbname));
fclose($fd);
header('Content-type: image/jpeg');
- echo($cacheContent);
+ echo ($cacheContent);
exit;
}
@@ -121,14 +132,13 @@ $yoord = 0;
$imgsize = getimagesize($get_filename);
$width = $imgsize[0];
$height = $imgsize[1];
-if ($width > $height) // If the width is greater than the height it’s a horizontal picture
-{
- $xoord = ceil(($width-$height)/2);
- $width = $height; // Then we read a square frame that equals the width
-}
-else
-{
- $yoord = ceil(($height-$width)/2);
+// If the width is greater than the height it’s a horizontal picture
+if ($width > $height) {
+ $xoord = ceil(($width - $height) / 2);
+ // Then we read a square frame that equals the width
+ $width = $height;
+} else {
+ $yoord = ceil(($height - $width) / 2);
$height = $width;
}
@@ -140,33 +150,33 @@ $degrees = 0;
$flip = '';
if (preg_match("/.jpg$|.jpeg$/i", $_GET['filename'])) {
if (function_exists('exif_read_data') && function_exists('imagerotate')) {
- $exif = exif_read_data($_GET['filename'], 0, true);
- $ort = $exif['IFD0']['Orientation'];
- switch ($ort) {
- case 3: // 180 rotate right
- $degrees = 180;
- break;
- case 6: // 90 rotate right
- $degrees = 270;
- break;
- case 8: // 90 rotate left
- $degrees = 90;
- break;
- case 2: // flip vertical
- $flip = 'vertical';
- break;
- case 7: // flipped
- $degrees = 90;
- $flip = 'vertical';
- break;
- case 5: // flipped
- $degrees = 270;
- $flip = 'vertical';
- break;
- case 4: // flipped
- $degrees = 180;
- $flip = 'vertical';
- break;
+ $exif = exif_read_data($_GET['filename'], 0, true);
+ $ort = $exif['IFD0']['Orientation'];
+ switch ($ort) {
+ case 3: // 180 rotate right
+ $degrees = 180;
+ break;
+ case 6: // 90 rotate right
+ $degrees = 270;
+ break;
+ case 8: // 90 rotate left
+ $degrees = 90;
+ break;
+ case 2: // flip vertical
+ $flip = 'vertical';
+ break;
+ case 7: // flipped
+ $degrees = 90;
+ $flip = 'vertical';
+ break;
+ case 5: // flipped
+ $degrees = 270;
+ $flip = 'vertical';
+ break;
+ case 4: // flipped
+ $degrees = 180;
+ $flip = 'vertical';
+ break;
}
}
}
@@ -174,27 +184,33 @@ if (preg_match("/.jpg$|.jpeg$/i", $_GET['filename'])) {
$target = imagecreatetruecolor($get_size, $get_size);
// if the picture can be transparent, add a white background
-if (in_array($get_filename_type, array("GIF", "PNG")))
-{
+if (in_array($get_filename_type, array("GIF", "PNG"))) {
$backgroundColor = imagecolorallocate($target, 255, 255, 255);
imagefill($target, 0, 0, $backgroundColor);
}
-if ($get_filename_type == "JPG") $source = imagecreatefromjpeg($get_filename);
-if ($get_filename_type == "GIF") $source = imagecreatefromgif($get_filename);
-if ($get_filename_type == "PNG") $source = imagecreatefrompng($get_filename);
+if ($get_filename_type == "JPG") {
+ $source = imagecreatefromjpeg($get_filename);
+}
+
+if ($get_filename_type == "GIF") {
+ $source = imagecreatefromgif($get_filename);
+}
+
+if ($get_filename_type == "PNG") {
+ $source = imagecreatefrompng($get_filename);
+}
+
imagecopyresampled($target, $source, 0, 0, $xoord, $yoord, $get_size, $get_size, $width, $height);
imagedestroy($source);
//proper rotation by jan niggemann
-if ($degrees != 0)
-{
+if ($degrees != 0) {
$target = imagerotate($target, $degrees, 0);
}
//proper mirror (aka flip) by jan niggemann
-if ($flip == 'vertical')
-{
+if ($flip == 'vertical') {
//only in php >= 5.5.0 ImageJPEG(imageflip($target, IMG_FLIP_VERTICAL),null,80);
flipVertical($target);
flipHorizontal($target);
@@ -208,12 +224,10 @@ imagedestroy($target);
$cachedImage = ob_get_contents(); // Get the buffer content.
ob_end_flush(); // End buffering
-if (is_writable(dirname($thumbname)))
-{
+if (is_writable(dirname($thumbname))) {
$fd = fopen($thumbname, "w"); // Save buffer to disk
- if ($fd)
- {
- fwrite($fd,$cachedImage);
+ if ($fd) {
+ fwrite($fd, $cachedImage);
fclose($fd);
}
-}
\ No newline at end of file
+}
diff --git a/index.php b/index.php
index e3ae332..2ab4e7c 100755
--- a/index.php
+++ b/index.php
@@ -19,7 +19,7 @@ Please enjoy this free script!
Upgraded to https://github.com/sebsauvage/MinigalNano
by Sébastien SAUVAGE.
-*/
+ */
error_reporting(-1);
@@ -29,8 +29,8 @@ header('Content-Type: text/html; charset=UTF-8'); // We use UTF-8 for proper int
$version = "0.3.7";
ini_set("memory_limit", "256M");
-require("config-default.php");
-include("config.php");
+require "config-default.php";
+include "config.php";
//-----------------------
// DEFINE VARIABLES
@@ -48,122 +48,121 @@ $comment = "";
// PHP ENVIRONMENT CHECK
//-----------------------
if (!function_exists('exif_read_data') && $display_exif == 1) {
- $display_exif = 0;
- $messages = "Error: PHP EXIF is not available. Set $display_exif = 0; in config.php to remove this message";
+ $display_exif = 0;
+ $messages = "Error: PHP EXIF is not available. Set $display_exif = 0; in config.php to remove this message";
}
//-----------------------
// FUNCTIONS
//-----------------------
-function padstring($name, $length)
-{
- global $label_max_length;
- if (!isset($length)) {
- $length = $label_max_length;
- }
- if (strlen($name) > $length) {
- return substr($name, 0, $length) . "...";
- }
- return $name;
+function padstring($name, $length) {
+ global $label_max_length;
+ if (!isset($length)) {
+ $length = $label_max_length;
+ }
+ if (strlen($name) > $length) {
+ return substr($name, 0, $length) . "...";
+ }
+ return $name;
}
-function getfirstImage($dirname)
-{
- $imageName = false;
- $extensions = array("jpg", "png", "jpeg", "gif");
- if ($handle = opendir($dirname)) {
- while(false !== ($file = readdir($handle))) {
- if ($file[0] == '.') {
- continue;
- }
- $pathinfo = pathinfo($file);
- if (empty($pathinfo['extension'])) {
- continue;
- }
- $ext = strtolower($pathinfo['extension']);
- if (in_array($ext, $extensions)) {
- $imageName = $file;
- break;
- }
- }
- closedir($handle);
- }
- return $imageName;
+function getfirstImage($dirname) {
+ $imageName = false;
+ $extensions = array("jpg", "png", "jpeg", "gif");
+ if ($handle = opendir($dirname)) {
+ while (false !== ($file = readdir($handle))) {
+ if ($file[0] == '.') {
+ continue;
+ }
+ $pathinfo = pathinfo($file);
+ if (empty($pathinfo['extension'])) {
+ continue;
+ }
+ $ext = strtolower($pathinfo['extension']);
+ if (in_array($ext, $extensions)) {
+ $imageName = $file;
+ break;
+ }
+ }
+ closedir($handle);
+ }
+ return $imageName;
}
-function parse_fraction($v, $round=0)
-{
- list($x, $y) = array_map('intval', explode('/', $v));
- if (empty($x) || empty($y)) {
- return $v;
- }
- if ($x % $y == 0) {
- return $x/$y;
- }
- if ($y % $x == 0) {
- return "1/" . $y/$x;
- }
- return round($x/$y, $round);
+function parse_fraction($v, $round = 0) {
+ list($x, $y) = array_map('intval', explode('/', $v));
+ if (empty($x) || empty($y)) {
+ return $v;
+ }
+ if ($x % $y == 0) {
+ return $x / $y;
+ }
+ if ($y % $x == 0) {
+ return "1/" . $y / $x;
+ }
+ return round($x / $y, $round);
}
-function readEXIF($file)
-{
- $exif_arr = array();
- $exif_data = exif_read_data($file);
+function readEXIF($file) {
+ $exif_arr = array();
+ $exif_data = exif_read_data($file);
- $exif_val = @$exif_data['Model'];
- if (!empty($exif_val)) {
- $exif_arr[] = $exif_val;
- }
+ $exif_val = @$exif_data['Model'];
+ if (!empty($exif_val)) {
+ $exif_arr[] = $exif_val;
+ }
- $exif_val = @$exif_data['FocalLength'];
- if (!empty($exif_val)) {
- $exif_arr[] = parse_fraction($exif_val) . "mm";
- }
+ $exif_val = @$exif_data['FocalLength'];
+ if (!empty($exif_val)) {
+ $exif_arr[] = parse_fraction($exif_val) . "mm";
+ }
- $exif_val = @$exif_data['ExposureTime'];
- if (!empty($exif_val)) {
- $exif_arr[] = parse_fraction($exif_val, 2) . "s";
- }
+ $exif_val = @$exif_data['ExposureTime'];
+ if (!empty($exif_val)) {
+ $exif_arr[] = parse_fraction($exif_val, 2) . "s";
+ }
- $exif_val = @$exif_data['FNumber'];
- if (!empty($exif_val)) {
- $exif_arr[] = "f" . parse_fraction($exif_val);
- }
+ $exif_val = @$exif_data['FNumber'];
+ if (!empty($exif_val)) {
+ $exif_arr[] = "f" . parse_fraction($exif_val);
+ }
- $exif_val = @$exif_data['ISOSpeedRatings'];
- if (!empty($exif_val)) {
- $exif_arr[] = "ISO " . $exif_val;
- }
+ $exif_val = @$exif_data['ISOSpeedRatings'];
+ if (!empty($exif_val)) {
+ $exif_arr[] = "ISO " . $exif_val;
+ }
- if (count($exif_arr) > 0) {
- return "::" . implode(" | ", $exif_arr);
- }
+ if (count($exif_arr) > 0) {
+ return "::" . implode(" | ", $exif_arr);
+ }
}
-function checkpermissions($file)
-{
- global $messages;
+function checkpermissions($file) {
+ global $messages;
- if (!is_readable($file)) {
- $messages = "At least one file or folder has wrong permissions. "
- . "Learn how to "
- . "set file permissions ";
- }
+ if (!is_readable($file)) {
+ $messages = "At least one file or folder has wrong permissions. "
+ . "Learn how to "
+ . "set file permissions ";
+ }
+}
+
+if (!defined("GALLERY_ROOT")) {
+ define("GALLERY_ROOT", "");
}
-if (!defined("GALLERY_ROOT"))
- define("GALLERY_ROOT", "");
$requestedDir = '';
-if (!empty($_GET['dir']))
- $requestedDir = $_GET['dir'];
+if (!empty($_GET['dir'])) {
+ $requestedDir = $_GET['dir'];
+}
+
$thumbdir = rtrim('photos/' . $requestedDir, '/');
//$thumbdir = str_replace('/..', '', $thumbdir); // Prevent directory traversal attacks.
if (strstr($thumbdir, '..') !== false) {
- $requestedDir = '';
- $thumbdir = rtrim('photos/', '/');
+ $requestedDir = '';
+ $thumbdir = rtrim('photos/', '/');
}
$currentdir = GALLERY_ROOT . $thumbdir;
@@ -175,333 +174,383 @@ $files = array();
$dirs = array();
$img_captions = array();
if (is_dir($currentdir) && $handle = opendir($currentdir)) {
- // 1. LOAD CAPTIONS
- $caption_filename = "$currentdir/captions.txt";
- if (is_readable($caption_filename)) {
- $caption_handle = fopen($caption_filename, "rb");
- while (!feof($caption_handle)) {
- $caption_line = fgetss($caption_handle);
- if (empty($caption_line)) {
- continue;
- }
- list($img_file, $img_text) = explode('|', $caption_line);
- $img_captions[$img_file] = trim($img_text);
- }
- fclose($caption_handle);
- }
+ // 1. LOAD CAPTIONS
+ $caption_filename = "$currentdir/captions.txt";
+ if (is_readable($caption_filename)) {
+ $caption_handle = fopen($caption_filename, "rb");
+ while (!feof($caption_handle)) {
+ $caption_line = fgetss($caption_handle);
+ if (empty($caption_line)) {
+ continue;
+ }
+ list($img_file, $img_text) = explode('|', $caption_line);
+ $img_captions[$img_file] = trim($img_text);
+ }
+ fclose($caption_handle);
+ }
- while (false !== ($file = readdir($handle)) && !in_array($file, $SkipObjects)) {
- // 2. LOAD FOLDERS
- if (is_dir($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 . '/folder.jpg')) {
- $linkParams = http_build_query(
- array('dir' => ltrim("$requestedDir/$file", '/')),
- '',
- '&'
- );
- $linkUrl = "?$linkParams";
+ while (false !== ($file = readdir($handle)) && !in_array($file, $SkipObjects)) {
+ // 2. LOAD FOLDERS
+ if (is_dir($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 . '/folder.jpg')) {
+ $linkParams = http_build_query(
+ array('dir' => ltrim("$requestedDir/$file", '/')),
+ '',
+ '&'
+ );
+ $linkUrl = "?$linkParams";
- $imgParams = http_build_query(
- array(
- 'filename' => "$currentdir/$file/folder.jpg",
- 'size' => $thumb_size
- ),
- '',
- '&'
- );
- $imgUrl = GALLERY_ROOT . "createthumb.php?$imgParams";
+ $imgParams = http_build_query(
+ array(
+ 'filename' => "$currentdir/$file/folder.jpg",
+ 'size' => $thumb_size,
+ ),
+ '',
+ '&'
+ );
+ $imgUrl = GALLERY_ROOT . "createthumb.php?$imgParams";
- $dirs[] = array(
- "name" => $file,
- "date" => filemtime($currentdir . "/" . $file . "/folder.jpg"),
- "html" => "
" . padstring($file, $label_max_length) . " "
- );
- } else {
- // Set thumbnail to first image found (if any):
- unset($firstimage);
- $firstimage = getfirstImage("$currentdir/" . $file);
+ $dirs[] = array(
+ "name" => $file,
+ "date" => filemtime($currentdir . "/" . $file . "/folder.jpg"),
+ "html" => "" . padstring($file, $label_max_length) . " ",
+ );
+ } else {
+ // Set thumbnail to first image found (if any):
+ unset($firstimage);
+ $firstimage = getfirstImage("$currentdir/" . $file);
- if ($firstimage != "") {
- $linkParams = http_build_query(
- array('dir' => ltrim("$requestedDir/$file", '/')),
- '',
- '&'
- );
- $linkUrl = "?$linkParams";
+ if ($firstimage != "") {
+ $linkParams = http_build_query(
+ array('dir' => ltrim("$requestedDir/$file", '/')),
+ '',
+ '&'
+ );
+ $linkUrl = "?$linkParams";
- $imgParams = http_build_query(
- array(
- 'filename' => "$thumbdir/$file/$firstimage",
- 'size' => $thumb_size
- ),
- '',
- '&'
- );
- $imgUrl = GALLERY_ROOT . "createthumb.php?$imgParams";
+ $imgParams = http_build_query(
+ array(
+ 'filename' => "$thumbdir/$file/$firstimage",
+ 'size' => $thumb_size,
+ ),
+ '',
+ '&'
+ );
+ $imgUrl = GALLERY_ROOT . "createthumb.php?$imgParams";
- $dirs[] = array(
- "name" => $file,
- "date" => filemtime($currentdir . "/" . $file),
- "html" => "" . padstring($file, $label_max_length) . " "
- );
- } else {
- // If no folder.jpg or image is found, then display default icon:
- $linkParams = http_build_query(
- array('dir' => ltrim("$requestedDir/$file", '/')),
- '',
- '&'
- );
- $linkUrl = "?$linkParams";
- $imgUrl = GALLERY_ROOT . 'images/folder_' . strtolower($folder_color) . '.png';
+ $dirs[] = array(
+ "name" => $file,
+ "date" => filemtime($currentdir . "/" . $file),
+ "html" => "" . padstring($file, $label_max_length) . " ",
+ );
+ } else {
+ // If no folder.jpg or image is found, then display default icon:
+ $linkParams = http_build_query(
+ array('dir' => ltrim("$requestedDir/$file", '/')),
+ '',
+ '&'
+ );
+ $linkUrl = "?$linkParams";
+ $imgUrl = GALLERY_ROOT . 'images/folder_' . strtolower($folder_color) . '.png';
- $dirs[] = array(
- "name" => $file,
- "date" => filemtime($currentdir . "/" . $file),
- "html" => "" . padstring($file, $label_max_length) . " "
- );
- }
- }
- }
- }
+ $dirs[] = array(
+ "name" => $file,
+ "date" => filemtime($currentdir . "/" . $file),
+ "html" => "" . padstring($file, $label_max_length) . " ",
+ );
+ }
+ }
+ }
+ }
- // 3. LOAD FILES
- if ($file != "." && $file != ".." && $file != "folder.jpg") {
- if ($display_filename)
- $filename_caption = "" . padstring($file, $label_max_length) . " ";
- else
- $filename_caption = "";
- // JPG, GIF and PNG
- if (preg_match("/.jpg$|.gif$|.png$/i", $file)) {
- //Read EXIF
- if (!array_key_exists($file, $img_captions)) {
- if ($display_exif == 1) {
- $exifReaden = readEXIF($currentdir . "/" . $file);
- //Add to the caption all the EXIF information
- $img_captions[$file] = $file.$exifReaden;
- } else {
- //If no EXIF, just use the filename as caption
- $img_captions[$file] = $file;
- }
- }
- // Read the optionnal image title and caption in html file (image.jpg --> image.jpg.html)
- // Format: title::caption
- // Example: My cat::My cat like to roll on the floor.
- // If file is not provided, image filename will be used instead.
- checkpermissions($currentdir . "/" . $file);
+ // 3. LOAD FILES
+ if ($file != "." && $file != ".." && $file != "folder.jpg") {
+ if ($display_filename) {
+ $filename_caption = "" . padstring($file, $label_max_length) . " ";
+ } else {
+ $filename_caption = "";
+ }
- if (is_file($currentdir.'/'.$file.'.html'))
- $img_captions[$file] = $file.'::'.htmlspecialchars(file_get_contents($currentdir.'/'.$file.'.html'), ENT_QUOTES);
- $linkUrl = str_replace('%2F', '/', rawurlencode("$currentdir/$file"));
- $imgParams = http_build_query(
- array('filename' => "$thumbdir/$file", 'size' => $thumb_size),
- '',
- '&');
- $imgUrl = GALLERY_ROOT . "createthumb.php?$imgParams";
- if ($lazyload)
- $imgopts = "class=\"b-lazy\" src=data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== data-src=\"$imgUrl\"";
- else
- $imgopts = "src=\"{$imgUrl}\"";
- $files[] = array(
- "name" => $file,
- "date" => filemtime($currentdir . "/" . $file),
- "size" => filesize($currentdir . "/" . $file),
- "html" => " " . $filename_caption . " ");
- }
- // 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 (preg_match("/\.ogv$|\.mp4$|\.mpg$|\.mpeg$|\.mov$|\.avi$|\.wmv$|\.flv$|\.webm$/i", $file)) $extension = "VIDEO"; // video files
- if (preg_match("/\.aiff$|\.aif$|\.wma$|\.aac$|\.flac$|\.mp3$|\.ogg$|\.m4a$/i", $file)) $extension = "AUDIO"; // audio files
+ // JPG, GIF and PNG
+ if (preg_match("/.jpg$|.gif$|.png$/i", $file)) {
+ //Read EXIF
+ if (!array_key_exists($file, $img_captions)) {
+ if ($display_exif == 1) {
+ $exifReaden = readEXIF($currentdir . "/" . $file);
+ //Add to the caption all the EXIF information
+ $img_captions[$file] = $file . $exifReaden;
+ } else {
+ //If no EXIF, just use the filename as caption
+ $img_captions[$file] = $file;
+ }
+ }
+ // Read the optionnal image title and caption in html file (image.jpg --> image.jpg.html)
+ // Format: title::caption
+ // Example: My cat::My cat like to roll on the floor.
+ // If file is not provided, image filename will be used instead.
+ checkpermissions($currentdir . "/" . $file);
- if ($extension != "") {
- $files[] = array(
- "name" => $file,
- "date" => filemtime($currentdir . "/" . $file),
- "size" => filesize($currentdir . "/" . $file),
- "html" => "" . padstring($file, 20) . " $filename_caption ");
- }
- }
- }
- closedir($handle);
+ if (is_file($currentdir . '/' . $file . '.html')) {
+ $img_captions[$file] = $file . '::' . htmlspecialchars(file_get_contents($currentdir . '/' . $file . '.html'), ENT_QUOTES);
+ }
+
+ $linkUrl = str_replace('%2F', '/', rawurlencode("$currentdir/$file"));
+ $imgParams = http_build_query(
+ array('filename' => "$thumbdir/$file", 'size' => $thumb_size),
+ '',
+ '&');
+ $imgUrl = GALLERY_ROOT . "createthumb.php?$imgParams";
+ if ($lazyload) {
+ $imgopts = "class=\"b-lazy\" src=data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== data-src=\"$imgUrl\"";
+ } else {
+ $imgopts = "src=\"{$imgUrl}\"";
+ }
+
+ $files[] = array(
+ "name" => $file,
+ "date" => filemtime($currentdir . "/" . $file),
+ "size" => filesize($currentdir . "/" . $file),
+ "html" => " " . $filename_caption . " ");
+ }
+ // 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 (preg_match("/\.ogv$|\.mp4$|\.mpg$|\.mpeg$|\.mov$|\.avi$|\.wmv$|\.flv$|\.webm$/i", $file)) {
+ $extension = "VIDEO";
+ }
+ // video files
+ if (preg_match("/\.aiff$|\.aif$|\.wma$|\.aac$|\.flac$|\.mp3$|\.ogg$|\.m4a$/i", $file)) {
+ $extension = "AUDIO";
+ }
+ // audio files
+
+ if ($extension != "") {
+ $files[] = array(
+ "name" => $file,
+ "date" => filemtime($currentdir . "/" . $file),
+ "size" => filesize($currentdir . "/" . $file),
+ "html" => "" . padstring($file, 20) . " $filename_caption ");
+ }
+ }
+ }
+ closedir($handle);
} else {
- die("ERROR: Could not open ".htmlspecialchars(stripslashes($currentdir))." for reading!");
+ die("ERROR: Could not open " . htmlspecialchars(stripslashes($currentdir)) . " for reading!");
}
//-----------------------
// SORT FILES AND FOLDERS
//-----------------------
if (sizeof($dirs) > 0) {
- foreach ($dirs as $key => $row) {
- if ($row["name"] == "") {
- unset($dirs[$key]); //Delete empty array entries
- continue;
- }
- $name[$key] = strtolower($row['name']);
- $date[$key] = strtolower($row['date']);
- }
- @array_multisort($$sorting_folders, $sortdir_folders, $name, $sortdir_folders, $dirs);
+ foreach ($dirs as $key => $row) {
+ if ($row["name"] == "") {
+ unset($dirs[$key]); //Delete empty array entries
+ continue;
+ }
+ $name[$key] = strtolower($row['name']);
+ $date[$key] = strtolower($row['date']);
+ }
+ @array_multisort($$sorting_folders, $sortdir_folders, $name, $sortdir_folders, $dirs);
}
if (sizeof($files) > 0) {
- foreach ($files as $key => $row) {
- if ($row["name"] == "") {
- unset($files[$key]); //Delete empty array entries
- continue;
- }
- $name[$key] = strtolower($row['name']);
- $date[$key] = strtolower($row['date']);
- $size[$key] = strtolower($row['size']);
- }
- @array_multisort($$sorting_files, $sortdir_files, $name, SORT_ASC, $files);
+ foreach ($files as $key => $row) {
+ if ($row["name"] == "") {
+ unset($files[$key]); //Delete empty array entries
+ continue;
+ }
+ $name[$key] = strtolower($row['name']);
+ $date[$key] = strtolower($row['date']);
+ $size[$key] = strtolower($row['size']);
+ }
+ @array_multisort($$sorting_files, $sortdir_files, $name, SORT_ASC, $files);
}
//-----------------------
// OFFSET DETERMINATION
//-----------------------
-if (!isset($_GET["page"]))
- $_GET["page"] = 1;
+if (!isset($_GET["page"])) {
+ $_GET["page"] = 1;
+}
+
$offset_start = ($_GET["page"] * $thumbs_pr_page) - $thumbs_pr_page;
$offset_end = $offset_start + $thumbs_pr_page;
-if ($offset_end > sizeof($dirs) + sizeof($files))
- $offset_end = sizeof($dirs) + sizeof($files);
+if ($offset_end > sizeof($dirs) + sizeof($files)) {
+ $offset_end = sizeof($dirs) + sizeof($files);
+}
if ($_GET["page"] == "all" || $lazyload) {
- $offset_start = 0;
- $offset_end = sizeof($dirs) + sizeof($files);
+ $offset_start = 0;
+ $offset_end = sizeof($dirs) + sizeof($files);
}
//-----------------------
// PAGE NAVIGATION
//-----------------------
if (!$lazyload && 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 . " ";
- 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";
- else
- $page_navigation .= " | $label_all ";
+ $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 . " ";
+ }
+
+ 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";
+ } else {
+ $page_navigation .= " | $label_all ";
+ }
+
}
//-----------------------
// BREADCRUMB NAVIGATION
//-----------------------
if ($requestedDir != "" && $requestedDir != "photos") {
- $breadcrumb_navigation = "";
- $breadcrumb_navigation .= "
" . $label_home . " $breadcrumb_separator ";
- $navitems = explode("/", htmlspecialchars($_REQUEST['dir']));
- for ($i = 0; $i < sizeof($navitems); $i++) {
- if ($i == sizeof($navitems)-1) {
- $breadcrumb_navigation .= $navitems[$i];
- } else {
- $breadcrumb_navigation .= "
" . $navitems[$i] . " $breadcrumb_separator ";
- }
- }
- $breadcrumb_navigation .= "
";
+ $breadcrumb_navigation = "";
+ $breadcrumb_navigation .= "
" . $label_home . " $breadcrumb_separator ";
+ $navitems = explode("/", htmlspecialchars($_REQUEST['dir']));
+ for ($i = 0; $i < sizeof($navitems); $i++) {
+ if ($i == sizeof($navitems) - 1) {
+ $breadcrumb_navigation .= $navitems[$i];
+ } else {
+ $breadcrumb_navigation .= "
" . $navitems[$i] . " $breadcrumb_separator ";
+ }
+ }
+ $breadcrumb_navigation .= "
";
}
//Include hidden links for all images BEFORE current page so lightbox is able to browse images on different pages
for ($y = 0; $y < $offset_start - sizeof($dirs); $y++) {
- $breadcrumb_navigation .= " ";
+ $breadcrumb_navigation .= " ";
}
//-----------------------
// DISPLAY FOLDERS
//-----------------------
if (count($dirs) + count($files) == 0) {
- $thumbnails .= "$label_noimages
$label_noimages_advice
"; //Display 'no images' text
- if ($currentdir == "photos") {
- $messages =
- "It looks like you have just installed MiniGal Nano.
+ $thumbnails .= "$label_noimages
$label_noimages_advice
"; //Display 'no images' text
+ if ($currentdir == "photos") {
+ $messages =
+ "It looks like you have just installed MiniGal Nano.
Please run the system check tool .
And why not have a look to config.php and customize some values ?";
- }
+ }
}
$offset_current = $offset_start;
for ($x = $offset_start; $x < sizeof($dirs) && $x < $offset_end; $x++) {
- $offset_current++;
- $thumbnails .= $dirs[$x]["html"];
+ $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"];
- }
+ 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
-if ($i < 0)
- $i = 1;
+if ($i < 0) {
+ $i = 1;
+}
+
for ($y = $i; $y < sizeof($files); $y++) {
- $page_navigation .= " ";
+ $page_navigation .= " ";
}
//-----------------------
// OUTPUT MESSAGES
//-----------------------
if ($messages != "") {
- $messages = $messages . "";
+ $messages = $messages . "
";
}
// Read folder comment.
$comment_filepath = $currentdir . $file . "/comment.html";
if (file_exists($comment_filepath)) {
- $fd = fopen($comment_filepath, "r");
- $comment = "";
- fclose($fd);
+ $fd = fopen($comment_filepath, "r");
+ $comment = "";
+ fclose($fd);
}
//PROCESS TEMPLATE FILE
-if (GALLERY_ROOT != "")
- $templatefile = GALLERY_ROOT . "templates/integrate.html";
-else
- $templatefile = "templates/" . $templatefile . ".html";
+if (GALLERY_ROOT != "") {
+ $templatefile = GALLERY_ROOT . "templates/integrate.html";
+} else {
+ $templatefile = "templates/" . $templatefile . ".html";
+}
if (!$fd = fopen($templatefile, "r")) {
- echo "Template ".htmlspecialchars(stripslashes($templatefile))." not found!";
- exit();
+ echo "Template " . htmlspecialchars(stripslashes($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("/<% folder_comment %>/", "$comment", $template);
- $template = preg_replace("/<% bgcolor %>/", "$backgroundcolor", $template);
- $template = preg_replace("/<% gallery_width %>/", "$gallery_width", $template);
- $template = preg_replace("/<% version %>/", "$version", $template);
- echo "$template";
+ $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("/<% folder_comment %>/", "$comment", $template);
+ $template = preg_replace("/<% bgcolor %>/", "$backgroundcolor", $template);
+ $template = preg_replace("/<% gallery_width %>/", "$gallery_width", $template);
+ $template = preg_replace("/<% version %>/", "$version", $template);
+ echo "$template";
}
diff --git a/integrate.php b/integrate.php
index df24c25..ec241fa 100644
--- a/integrate.php
+++ b/integrate.php
@@ -1,7 +1,7 @@
\ No newline at end of file
diff --git a/rss.php b/rss.php
index e325e75..6b5293c 100644
--- a/rss.php
+++ b/rss.php
@@ -4,11 +4,11 @@
/*============================*/
if (!empty($_SERVER['REQUEST_SCHEME'])) {
- $g_protocol = $_SERVER['REQUEST_SCHEME'];
+ $g_protocol = $_SERVER['REQUEST_SCHEME'];
} elseif (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') {
- $g_protocol = 'https';
+ $g_protocol = 'https';
} else {
- $g_protocol = 'http';
+ $g_protocol = 'http';
}
$g_host = $_SERVER['HTTP_HOST'];
$g_port = $_SERVER['SERVER_PORT'];
@@ -16,14 +16,14 @@ $g_path = dirname($_SERVER['REQUEST_URI']);
// remove default ports
if (($g_protocol == 'https' && $g_port == '443') ||
- ($g_protocol == 'http' && $g_port == '80')) {
- $g_port = '';
+ ($g_protocol == 'http' && $g_port == '80')) {
+ $g_port = '';
} else {
- $g_port = ':' . $g_port;
+ $g_port = ':' . $g_port;
}
if ($g_path[0] != '/') {
- $g_path = '/' . $g_path;
+ $g_path = '/' . $g_path;
}
$gallery_link = $g_protocol . '://' . $g_host . $g_port . $g_path;
@@ -32,115 +32,115 @@ $gallery_link = $g_protocol . '://' . $g_host . $g_port . $g_path;
/* Functions */
/*===================*/
# Hardly inspired from here : codes-sources.commentcamarche.net/source/35937-creation-d-une-arborescenceI
-# Listing all files of a folder and sub folders.
-function listFiles(&$content, $Folder, $SkipFileExts, $SkipObjects)
-{
- $dir = opendir($Folder);
- // Loop on all contained on the folder
- while (false !== ($Current = readdir($dir))) {
- if ($Current !='.' && $Current != '..' && in_array($Current, $SkipObjects) === false) {
- if (is_dir($Folder.'/'.$Current)) {
- ListFiles($content, $Folder . '/' . $Current, $SkipFileExts, $SkipObjects);
- } else {
- $FileExt = strtolower(substr(strrchr($Current, '.'), 1));
- // Should we display this extension ?
- if (in_array($FileExt, $SkipFileExts) === false) {
- $current_adress = $Folder.'/'. $Current;
- array_push($content, $current_adress);
- }
- }
- }
- }
- closedir($dir);
- return $content;
+# Listing all files of a folder and sub folders.
+function listFiles(&$content, $Folder, $SkipFileExts, $SkipObjects) {
+ $dir = opendir($Folder);
+ // Loop on all contained on the folder
+ while (false !== ($Current = readdir($dir))) {
+ if ($Current != '.' && $Current != '..' && in_array($Current, $SkipObjects) === false) {
+ if (is_dir($Folder . '/' . $Current)) {
+ ListFiles($content, $Folder . '/' . $Current, $SkipFileExts, $SkipObjects);
+ } else {
+ $FileExt = strtolower(substr(strrchr($Current, '.'), 1));
+ // Should we display this extension ?
+ if (in_array($FileExt, $SkipFileExts) === false) {
+ $current_adress = $Folder . '/' . $Current;
+ array_push($content, $current_adress);
+ }
+ }
+ }
+ }
+ closedir($dir);
+ return $content;
}
# Paul's Simple Diff Algorithm v 0.1 : http://paulbutler.org/archives/a-simple-diff-algorithm-in-php/
-function diff($old, $new)
-{
- $matrix = array();
- $maxlen = 0;
- foreach ($old as $oindex => $ovalue) {
- $nkeys = array_keys($new, $ovalue);
- foreach ($nkeys as $nindex) {
- $matrix[$oindex][$nindex] = isset($matrix[$oindex - 1][$nindex - 1]) ?
- $matrix[$oindex - 1][$nindex - 1] + 1 : 1;
- if ($matrix[$oindex][$nindex] > $maxlen) {
- $maxlen = $matrix[$oindex][$nindex];
- $omax = $oindex + 1 - $maxlen;
- $nmax = $nindex + 1 - $maxlen;
- }
- }
- }
- if ($maxlen == 0)
- return array(array('d'=>$old, 'i'=>$new));
- return array_merge(
- diff(array_slice($old, 0, $omax), array_slice($new, 0, $nmax)),
- array_slice($new, $nmax, $maxlen),
- diff(array_slice($old, $omax + $maxlen), array_slice($new, $nmax + $maxlen)));
+function diff($old, $new) {
+ $matrix = array();
+ $maxlen = 0;
+ foreach ($old as $oindex => $ovalue) {
+ $nkeys = array_keys($new, $ovalue);
+ foreach ($nkeys as $nindex) {
+ $matrix[$oindex][$nindex] = isset($matrix[$oindex - 1][$nindex - 1]) ?
+ $matrix[$oindex - 1][$nindex - 1] + 1 : 1;
+ if ($matrix[$oindex][$nindex] > $maxlen) {
+ $maxlen = $matrix[$oindex][$nindex];
+ $omax = $oindex + 1 - $maxlen;
+ $nmax = $nindex + 1 - $maxlen;
+ }
+ }
+ }
+ if ($maxlen == 0) {
+ return array(array('d' => $old, 'i' => $new));
+ }
+
+ return array_merge(
+ diff(array_slice($old, 0, $omax), array_slice($new, 0, $nmax)),
+ array_slice($new, $nmax, $maxlen),
+ diff(array_slice($old, $omax + $maxlen), array_slice($new, $nmax + $maxlen)));
}
/*===================*/
/* Variables */
/*===================*/
-require("config-default.php");
-include("config.php");
+require "config-default.php";
+include "config.php";
$folder = "photos";
$content = array();
$content = listFiles($content, $folder, $SkipExts, $SkipObjects);
-usort($content, function ($a, $b) { return filemtime($a) < filemtime($b); });
+usort($content, function ($a, $b) {return filemtime($a) < filemtime($b);});
if (is_writeable(".")) {
- $to_store = "";
- $old_files_list = "db_old_files"; //list of files in ./photos
- $db_feed_source = "db_feed_source";
- $db_rss_timestamp = "db_rss_timestamp";
+ $to_store = "";
+ $old_files_list = "db_old_files"; //list of files in ./photos
+ $db_feed_source = "db_feed_source";
+ $db_rss_timestamp = "db_rss_timestamp";
- // Init files
- if (!file_exists($old_files_list)) {
- file_put_contents($old_files_list, "");
- }
- if (!file_exists($db_feed_source)) {
- file_put_contents($db_feed_source, "");
- }
- if (!file_exists($db_rss_timestamp)) {
- file_put_contents($db_rss_timestamp, "");
- }
+ // Init files
+ if (!file_exists($old_files_list)) {
+ file_put_contents($old_files_list, "");
+ }
+ if (!file_exists($db_feed_source)) {
+ file_put_contents($db_feed_source, "");
+ }
+ if (!file_exists($db_rss_timestamp)) {
+ file_put_contents($db_rss_timestamp, "");
+ }
- /*===================*/
- /* Computing */
- /*===================*/
- #Todo : ajouter une condition : dois-je regénérer le flux ou utiliser les anciens fichiers ?
- $temp = file_get_contents($db_feed_source);
- $last_rss_gen = file_get_contents($db_rss_timestamp);
- $current_time = time();
- // If the RSS generation is already launched, don't do a second generation at the same time
- if (($current_time - $last_rss_gen) > $rss_refresh_interval && file_exists("rss.locker") == false) {
- file_put_contents("rss.locker", "");
- file_put_contents($db_rss_timestamp, time());
- // Load the list from files.
- $old_files_list_content = explode("\n", file_get_contents($old_files_list));
- $new_files_list_content = $content; #debug
- // Generate and stock new elements
- $differences = diff($old_files_list_content, $new_files_list_content);
- for ($i=0; $i < count($differences); $i++) {
- if (is_array($differences[$i])) {
- for ($j=0; $j < count($differences[$i]["i"]); $j++) {
- if (strlen($differences[$i]["i"][$j]) > 2) {
- $to_store .= $differences[$i]["i"][$j] . "\n";
- }
- }
- }
- }
- // Add new elements at the top of the feed's source
- $temp = $to_store . $temp;
- file_put_contents($db_feed_source, $temp);
- // Store the current file list for the next generation
- file_put_contents($old_files_list, join("/n", $content));
- unlink("rss.locker");
- }
- $content = explode("\n", $temp);
+ /*===================*/
+ /* Computing */
+ /*===================*/
+ #Todo : ajouter une condition : dois-je regénérer le flux ou utiliser les anciens fichiers ?
+ $temp = file_get_contents($db_feed_source);
+ $last_rss_gen = file_get_contents($db_rss_timestamp);
+ $current_time = time();
+ // If the RSS generation is already launched, don't do a second generation at the same time
+ if (($current_time - $last_rss_gen) > $rss_refresh_interval && file_exists("rss.locker") == false) {
+ file_put_contents("rss.locker", "");
+ file_put_contents($db_rss_timestamp, time());
+ // Load the list from files.
+ $old_files_list_content = explode("\n", file_get_contents($old_files_list));
+ $new_files_list_content = $content; #debug
+ // Generate and stock new elements
+ $differences = diff($old_files_list_content, $new_files_list_content);
+ for ($i = 0; $i < count($differences); $i++) {
+ if (is_array($differences[$i])) {
+ for ($j = 0; $j < count($differences[$i]["i"]); $j++) {
+ if (strlen($differences[$i]["i"][$j]) > 2) {
+ $to_store .= $differences[$i]["i"][$j] . "\n";
+ }
+ }
+ }
+ }
+ // Add new elements at the top of the feed's source
+ $temp = $to_store . $temp;
+ file_put_contents($db_feed_source, $temp);
+ // Store the current file list for the next generation
+ file_put_contents($old_files_list, join("/n", $content));
+ unlink("rss.locker");
+ }
+ $content = explode("\n", $temp);
}
/*===================*/
@@ -152,16 +152,18 @@ echo "
\n";
echo "$title ";
echo " $gallery_link";
echo "$description \n";
-for ($i=0; $i < $nb_items_rss && $i < count($content); $i++) {
- if (empty($content[$i]))
- continue;
- $link = $gallery_link . '/' . str_replace(' ', '%20', $content[$i]);
- echo "- \n";
- echo "
" . basename($link) . " \n";
- echo " ". $link . "\n";
- echo " ". $link . " \n";
- echo " ]]> \n";
- echo " " . date ("D, j M Y H:i:s O", filemtime($content[$i])) . " ";
- echo " \n";
+for ($i = 0; $i < $nb_items_rss && $i < count($content); $i++) {
+ if (empty($content[$i])) {
+ continue;
+ }
+
+ $link = $gallery_link . '/' . str_replace(' ', '%20', $content[$i]);
+ echo "- \n";
+ echo "
" . basename($link) . " \n";
+ echo " " . $link . "\n";
+ echo " " . $link . " \n";
+ echo " ]]> \n";
+ echo " " . date("D, j M Y H:i:s O", filemtime($content[$i])) . " ";
+ echo " \n";
}
echo " \n";
diff --git a/system_check.php b/system_check.php
index 9c6d859..3a05bd3 100644
--- a/system_check.php
+++ b/system_check.php
@@ -1,11 +1,20 @@
@@ -61,7 +70,7 @@
display: inline-table;
background-color: #eaf1ea;
padding: 2px;
- }
+ }
@@ -69,8 +78,13 @@
PHP Version
-
')) echo 'middle-yes'; else echo 'middle-no' ?>">
-
+
')) {
+ echo 'middle-yes';
+} else {
+ echo 'middle-no';
+}
+?>">
+
PHP scripting language version 4.0 or greater is needed.
@@ -80,8 +94,13 @@
GD library support
-
">
-
+
">
+
GD image manipulation library is used to create thumbnails. Bundled since PHP 4.3.
@@ -91,8 +110,13 @@
EXIF support
-
">
-
+
">
+
Ability to extract and display
EXIF information . The script will work without it, but not display image information.
@@ -102,8 +126,13 @@
Thumbnails caching
-
">
-
+
">
+
You should let php create and use the 'thumbs" directory. MiniGal will be much faster.
@@ -114,13 +143,11 @@
PHP memory limit
-
+
Memory is needed to create thumbnails. Bigger images uses more memory.
-
-