PSR2 php style

This commit is contained in:
Tom Canac 2015-07-02 00:08:46 +02:00
parent 7466c634f0
commit 08cbcbdc5f
7 changed files with 666 additions and 574 deletions

View file

@ -4,14 +4,14 @@ 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
@ -41,7 +41,7 @@ $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.
$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

View file

@ -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

View file

@ -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: <img src="createthumb.php?filename=photo.jpg&amp;size=100">
*/
*/
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 its 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 its 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;
}
@ -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);
}
}

165
index.php
View file

@ -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
@ -55,8 +55,7 @@ if (!function_exists('exif_read_data') && $display_exif == 1) {
//-----------------------
// FUNCTIONS
//-----------------------
function padstring($name, $length)
{
function padstring($name, $length) {
global $label_max_length;
if (!isset($length)) {
$length = $label_max_length;
@ -67,12 +66,11 @@ function padstring($name, $length)
return $name;
}
function getfirstImage($dirname)
{
function getfirstImage($dirname) {
$imageName = false;
$extensions = array("jpg", "png", "jpeg", "gif");
if ($handle = opendir($dirname)) {
while(false !== ($file = readdir($handle))) {
while (false !== ($file = readdir($handle))) {
if ($file[0] == '.') {
continue;
}
@ -91,23 +89,21 @@ function getfirstImage($dirname)
return $imageName;
}
function parse_fraction($v, $round=0)
{
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;
return $x / $y;
}
if ($y % $x == 0) {
return "1/" . $y/$x;
return "1/" . $y / $x;
}
return round($x/$y, $round);
return round($x / $y, $round);
}
function readEXIF($file)
{
function readEXIF($file) {
$exif_arr = array();
$exif_data = exif_read_data($file);
@ -141,8 +137,7 @@ function readEXIF($file)
}
}
function checkpermissions($file)
{
function checkpermissions($file) {
global $messages;
if (!is_readable($file)) {
@ -153,11 +148,15 @@ function checkpermissions($file)
}
}
if (!defined("GALLERY_ROOT"))
if (!defined("GALLERY_ROOT")) {
define("GALLERY_ROOT", "");
}
$requestedDir = '';
if (!empty($_GET['dir']))
if (!empty($_GET['dir'])) {
$requestedDir = $_GET['dir'];
}
$thumbdir = rtrim('photos/' . $requestedDir, '/');
//$thumbdir = str_replace('/..', '', $thumbdir); // Prevent directory traversal attacks.
@ -196,7 +195,7 @@ if (is_dir($currentdir) && $handle = opendir($currentdir)) {
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')) {
if (file_exists($currentdir . '/' . $file . '/folder.jpg')) {
$linkParams = http_build_query(
array('dir' => ltrim("$requestedDir/$file", '/')),
'',
@ -207,7 +206,7 @@ if (is_dir($currentdir) && $handle = opendir($currentdir)) {
$imgParams = http_build_query(
array(
'filename' => "$currentdir/$file/folder.jpg",
'size' => $thumb_size
'size' => $thumb_size,
),
'',
'&amp;'
@ -217,7 +216,7 @@ if (is_dir($currentdir) && $handle = opendir($currentdir)) {
$dirs[] = array(
"name" => $file,
"date" => filemtime($currentdir . "/" . $file . "/folder.jpg"),
"html" => "<li><a href=\"{$linkUrl}\"><em>" . padstring($file, $label_max_length) . "</em><span></span><img src=\"{$imgUrl}\" alt=\"$label_loading\" /></a></li>"
"html" => "<li><a href=\"{$linkUrl}\"><em>" . padstring($file, $label_max_length) . "</em><span></span><img src=\"{$imgUrl}\" alt=\"$label_loading\" /></a></li>",
);
} else {
// Set thumbnail to first image found (if any):
@ -235,7 +234,7 @@ if (is_dir($currentdir) && $handle = opendir($currentdir)) {
$imgParams = http_build_query(
array(
'filename' => "$thumbdir/$file/$firstimage",
'size' => $thumb_size
'size' => $thumb_size,
),
'',
'&amp;'
@ -245,7 +244,7 @@ if (is_dir($currentdir) && $handle = opendir($currentdir)) {
$dirs[] = array(
"name" => $file,
"date" => filemtime($currentdir . "/" . $file),
"html" => "<li><a href=\"{$linkUrl}\"><em>" . padstring($file, $label_max_length) . "</em><span></span><img src=\"{$imgUrl}\" alt='$label_loading' /></a></li>"
"html" => "<li><a href=\"{$linkUrl}\"><em>" . padstring($file, $label_max_length) . "</em><span></span><img src=\"{$imgUrl}\" alt='$label_loading' /></a></li>",
);
} else {
// If no folder.jpg or image is found, then display default icon:
@ -260,7 +259,7 @@ if (is_dir($currentdir) && $handle = opendir($currentdir)) {
$dirs[] = array(
"name" => $file,
"date" => filemtime($currentdir . "/" . $file),
"html" => "<li><a href=\"{$linkUrl}\"><em>" . padstring($file, $label_max_length) . "</em><span></span><img src=\"{$imgUrl}\" width='$thumb_size' height='$thumb_size' alt='$label_loading' /></a></li>"
"html" => "<li><a href=\"{$linkUrl}\"><em>" . padstring($file, $label_max_length) . "</em><span></span><img src=\"{$imgUrl}\" width='$thumb_size' height='$thumb_size' alt='$label_loading' /></a></li>",
);
}
}
@ -269,10 +268,12 @@ if (is_dir($currentdir) && $handle = opendir($currentdir)) {
// 3. LOAD FILES
if ($file != "." && $file != ".." && $file != "folder.jpg") {
if ($display_filename)
if ($display_filename) {
$filename_caption = "<em>" . padstring($file, $label_max_length) . "</em>";
else
} else {
$filename_caption = "";
}
// JPG, GIF and PNG
if (preg_match("/.jpg$|.gif$|.png$/i", $file)) {
//Read EXIF
@ -280,7 +281,7 @@ if (is_dir($currentdir) && $handle = opendir($currentdir)) {
if ($display_exif == 1) {
$exifReaden = readEXIF($currentdir . "/" . $file);
//Add to the caption all the EXIF information
$img_captions[$file] = $file.$exifReaden;
$img_captions[$file] = $file . $exifReaden;
} else {
//If no EXIF, just use the filename as caption
$img_captions[$file] = $file;
@ -292,36 +293,70 @@ if (is_dir($currentdir) && $handle = opendir($currentdir)) {
// If file is not provided, image filename will be used instead.
checkpermissions($currentdir . "/" . $file);
if (is_file($currentdir.'/'.$file.'.html'))
$img_captions[$file] = $file.'::'.htmlspecialchars(file_get_contents($currentdir.'/'.$file.'.html'), ENT_QUOTES);
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),
'',
'&amp;');
$imgUrl = GALLERY_ROOT . "createthumb.php?$imgParams";
if ($lazyload)
if ($lazyload) {
$imgopts = "class=\"b-lazy\" src=data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== data-src=\"$imgUrl\"";
else
} else {
$imgopts = "src=\"{$imgUrl}\"";
}
$files[] = array(
"name" => $file,
"date" => filemtime($currentdir . "/" . $file),
"size" => filesize($currentdir . "/" . $file),
"html" => "<li><a href=\"{$linkUrl}\" rel='lightbox[billeder]' title=\"".htmlentities($img_captions[$file])."\"><img $imgopts alt='$label_loading' /></a>" . $filename_caption . "</li>");
"html" => "<li><a href=\"{$linkUrl}\" rel='lightbox[billeder]' title=\"" . htmlentities($img_captions[$file]) . "\"><img $imgopts alt='$label_loading' /></a>" . $filename_caption . "</li>");
}
// 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 (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(
@ -334,7 +369,7 @@ if (is_dir($currentdir) && $handle = opendir($currentdir)) {
}
closedir($handle);
} else {
die("ERROR: Could not open ".htmlspecialchars(stripslashes($currentdir))." for reading!");
die("ERROR: Could not open " . htmlspecialchars(stripslashes($currentdir)) . " for reading!");
}
//-----------------------
@ -368,12 +403,15 @@ if (sizeof($files) > 0) {
//-----------------------
// OFFSET DETERMINATION
//-----------------------
if (!isset($_GET["page"]))
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))
if ($offset_end > sizeof($dirs) + sizeof($files)) {
$offset_end = sizeof($dirs) + sizeof($files);
}
if ($_GET["page"] == "all" || $lazyload) {
$offset_start = 0;
@ -386,18 +424,24 @@ if ($_GET["page"] == "all" || $lazyload) {
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)
if ($_GET["page"] == $i) {
$page_navigation .= "$i";
else
} else {
$page_navigation .= "<a href='?dir=" . $requestedDir . "&amp;page=" . ($i) . "'>" . $i . "</a>";
if ($i != ceil((sizeof($files) + sizeof($dirs)) / $thumbs_pr_page))
}
if ($i != ceil((sizeof($files) + sizeof($dirs)) / $thumbs_pr_page)) {
$page_navigation .= " | ";
}
}
//Insert link to view all images
if ($_GET["page"] == "all")
if ($_GET["page"] == "all") {
$page_navigation .= " | $label_all";
else
} else {
$page_navigation .= " | <a href='?dir=" . $requestedDir . "&amp;page=all'>$label_all</a>";
}
}
//-----------------------
@ -408,15 +452,17 @@ if ($requestedDir != "" && $requestedDir != "photos") {
$breadcrumb_navigation .= "<a href='?dir='>" . $label_home . "</a> $breadcrumb_separator ";
$navitems = explode("/", htmlspecialchars($_REQUEST['dir']));
for ($i = 0; $i < sizeof($navitems); $i++) {
if ($i == sizeof($navitems)-1) {
if ($i == sizeof($navitems) - 1) {
$breadcrumb_navigation .= $navitems[$i];
} else {
$breadcrumb_navigation .= "<a href='?dir=";
for ($x = 0; $x <= $i; $x++) {
$breadcrumb_navigation .= $navitems[$x];
if ($x < $i)
if ($x < $i) {
$breadcrumb_navigation .= "/";
}
}
$breadcrumb_navigation .= "'>" . $navitems[$i] . "</a> $breadcrumb_separator ";
}
}
@ -457,8 +503,10 @@ for ($i = $offset_start - sizeof($dirs); $i < $offset_end && $offset_current < $
}
//Include hidden links for all images AFTER current page so lightbox is able to browse images on different pages
if ($i < 0)
if ($i < 0) {
$i = 1;
}
for ($y = $i; $y < sizeof($files); $y++) {
$page_navigation .= "<a href='" . $currentdir . "/" . $files[$y]["name"] . "' class='hidden' title='" . $img_captions[$files[$y]["name"]] . "'></a>";
}
@ -479,16 +527,17 @@ if (file_exists($comment_filepath)) {
}
//PROCESS TEMPLATE FILE
if (GALLERY_ROOT != "")
if (GALLERY_ROOT != "") {
$templatefile = GALLERY_ROOT . "templates/integrate.html";
else
} else {
$templatefile = "templates/" . $templatefile . ".html";
}
if (!$fd = fopen($templatefile, "r")) {
echo "Template ".htmlspecialchars(stripslashes($templatefile))." not found!";
echo "Template " . htmlspecialchars(stripslashes($templatefile)) . " not found!";
exit();
} else {
$template = fread($fd, filesize ($templatefile));
$template = fread($fd, filesize($templatefile));
fclose($fd);
$template = stripslashes($template);
$template = preg_replace("/<% title %>/", $title, $template);

View file

@ -3,5 +3,5 @@ $path_to_minigalnano = "minigalnano/"; // <- Enter RELATIVE path to MiniGal
// DO NOT EDIT BELOW THIS LINE!
define("GALLERY_ROOT", $path_to_minigalnano);
require(GALLERY_ROOT . "index.php");
require GALLERY_ROOT . "index.php";
?>

40
rss.php
View file

@ -33,19 +33,18 @@ $gallery_link = $g_protocol . '://' . $g_host . $g_port . $g_path;
/*===================*/
# 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)
{
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)) {
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;
$current_adress = $Folder . '/' . $Current;
array_push($content, $current_adress);
}
}
@ -56,8 +55,7 @@ function listFiles(&$content, $Folder, $SkipFileExts, $SkipObjects)
}
# Paul's Simple Diff Algorithm v 0.1 : http://paulbutler.org/archives/a-simple-diff-algorithm-in-php/
function diff($old, $new)
{
function diff($old, $new) {
$matrix = array();
$maxlen = 0;
foreach ($old as $oindex => $ovalue) {
@ -72,8 +70,10 @@ function diff($old, $new)
}
}
}
if ($maxlen == 0)
return array(array('d'=>$old, 'i'=>$new));
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),
@ -83,13 +83,13 @@ function diff($old, $new)
/*===================*/
/* 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 = "";
@ -124,9 +124,9 @@ if (is_writeable(".")) {
$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++) {
for ($i = 0; $i < count($differences); $i++) {
if (is_array($differences[$i])) {
for ($j=0; $j < count($differences[$i]["i"]); $j++) {
for ($j = 0; $j < count($differences[$i]["i"]); $j++) {
if (strlen($differences[$i]["i"][$j]) > 2) {
$to_store .= $differences[$i]["i"][$j] . "\n";
}
@ -152,16 +152,18 @@ echo "<rss version='2.0'>\n<channel>";
echo "<title>$title</title>";
echo "<link>$gallery_link</link>";
echo "<description>$description</description>\n";
for ($i=0; $i < $nb_items_rss && $i < count($content); $i++) {
if (empty($content[$i]))
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 "<item>\n";
echo " <title>" . basename($link) . "</title>\n";
echo " <link>". $link . "</link>\n";
echo " <guid>". $link . "</guid>\n";
echo " <link>" . $link . "</link>\n";
echo " <guid>" . $link . "</guid>\n";
echo " <description><![CDATA[ <img src='" . $link . "'> ]]></description>\n";
echo " <pubDate>" . date ("D, j M Y H:i:s O", filemtime($content[$i])) . "</pubDate>";
echo " <pubDate>" . date("D, j M Y H:i:s O", filemtime($content[$i])) . "</pubDate>";
echo "</item>\n";
}
echo "</channel></rss>\n";

View file

@ -1,11 +1,20 @@
<?php
ini_set("memory_limit","256M");
$exif = "No";
$gd = "No";
$thumbs = "No";
if (function_exists('exif_read_data')) $exif = "Yes";
if (extension_loaded('gd') && function_exists('gd_info')) $gd = "Yes";
if (is_dir('thumbs') && is_writable('thumbs')) $thumbs = "Yes";
ini_set("memory_limit", "256M");
$exif = "No";
$gd = "No";
$thumbs = "No";
if (function_exists('exif_read_data')) {
$exif = "Yes";
}
if (extension_loaded('gd') && function_exists('gd_info')) {
$gd = "Yes";
}
if (is_dir('thumbs') && is_writable('thumbs')) {
$thumbs = "Yes";
}
?>
<!DOCTYPE html>
<html>
@ -69,8 +78,13 @@
<div class="left">
PHP Version
</div>
<div class="<?php if(version_compare(phpversion(), "4.0", '>')) echo 'middle-yes'; else echo 'middle-no' ?>">
<?php echo phpversion(); ?>
<div class="<?php if (version_compare(phpversion(), "4.0", '>')) {
echo 'middle-yes';
} else {
echo 'middle-no';
}
?>">
<?php echo phpversion();?>
</div>
<div class="right">
<a href="http://www.php.net/" target="_blank">PHP</a> scripting language version 4.0 or greater is needed.
@ -80,8 +94,13 @@
<div class="left">
GD library support
</div>
<div class="<?php if($gd == "Yes") echo 'middle-yes'; else echo 'middle-no' ?>">
<?php echo $gd; ?>
<div class="<?php if ($gd == "Yes") {
echo 'middle-yes';
} else {
echo 'middle-no';
}
?>">
<?php echo $gd;?>
</div>
<div class="right">
<a href="http://www.boutell.com/gd/" target="_blank">GD image manipulation</a> library is used to create thumbnails. Bundled since PHP 4.3.
@ -91,8 +110,13 @@
<div class="left">
EXIF support
</div>
<div class="<?php if($exif == "Yes") echo 'middle-yes'; else echo 'middle-neutral' ?>">
<?php echo $exif; ?>
<div class="<?php if ($exif == "Yes") {
echo 'middle-yes';
} else {
echo 'middle-neutral';
}
?>">
<?php echo $exif;?>
</div>
<div class="right">
Ability to extract and display <a href="http://en.wikipedia.org/wiki/Exif" target="_blank">EXIF information</a>. The script will work without it, but not display image information.
@ -102,8 +126,13 @@
<div class="left">
Thumbnails caching
</div>
<div class="<?php if($thumbs == "Yes") echo 'middle-yes'; else echo 'middle-neutral' ?>">
<?php echo $thumbs; ?>
<div class="<?php if ($thumbs == "Yes") {
echo 'middle-yes';
} else {
echo 'middle-neutral';
}
?>">
<?php echo $thumbs;?>
</div>
<div class="right">
You should let php create and use the 'thumbs" directory. MiniGal will be <b>much</b> faster.
@ -114,14 +143,12 @@
PHP memory limit
</div>
<div class="middle-neutral">
<?php echo ini_get("memory_limit"); ?>
<?php echo ini_get("memory_limit");?>
</div>
<div class="right">
Memory is needed to create thumbnails. Bigger images uses more memory.
</div>
<footer role="contentinfo">
<a href="https://github.com/sebsauvage/MinigalNano" title="Powered by MiniGal Nano" target="_blank">
Made with miniGal by sebsauvage.