From 7d72e379b104d72addf1b1feafbf1385f8fa21b8 Mon Sep 17 00:00:00 2001 From: Marc MAURICE Date: Mon, 13 Jun 2011 22:46:52 +0200 Subject: [PATCH] Bizou now displays a progress page when generating thumbs --- index.php | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/index.php b/index.php index 7c9b462..846c7ae 100644 --- a/index.php +++ b/index.php @@ -48,6 +48,29 @@ function getImageLink($imageSimplePath) } } +// functions to display a "progress page" when thumbs are generating +function beginGenerating () +{ + if (! isset($GLOBALS["generating"])) { + echo "

If you get: \"Fatal error: Maximum execution time exceeded\", refresh this page.
Please wait while generating thumbnails:

\n"; + ob_flush(); flush(); + $GLOBALS["generating"] = true; + } +} +function displayGenerated($thumbFile) +{ + if (isset($GLOBALS["generating"])) { + echo basename($thumbFile)."\n"; + ob_flush(); flush(); + } +} +function endGenerating() { + if (isset($GLOBALS["generating"])) { + echo "

Finished. This page will be refreshed.

\n"; + exit(); + } +} + function getPreview($imgFile, $maxSize = THUMB_SIZE) { # example: data/myalbum/100.mypic.jpg @@ -55,6 +78,11 @@ function getPreview($imgFile, $maxSize = THUMB_SIZE) if (! is_file($newImgFile)) { + beginGenerating(); + + # reset script time limit to 20s (wont work in safe mode) + set_time_limit(20); + $ext = strtolower(substr($imgFile, -4)); if ($ext == ".jpg") $img = imagecreatefromjpeg($imgFile); @@ -94,6 +122,8 @@ function getPreview($imgFile, $maxSize = THUMB_SIZE) imagedestroy($img); imagedestroy($newImg); + + displayGenerated($newImgFile); } return $GLOBALS['rootUrl'].$newImgFile; @@ -156,6 +186,8 @@ foreach (scandir($realDir) as $file) if ($file != '.' and $file != '..') } } +endGenerating(); + if (dirname($simplePath) !== '') $parentLink = $scriptUrl.dirname($simplePath); else -- 1.7.10.4