changeset 185:cb7019690a73

Separate medium image and thumbnail directories / handling.
author Matti Hamalainen <ccr@tnsp.org>
date Wed, 14 Mar 2018 15:21:42 +0200
parents 087df916b6b4
children d765f7cacd38
files example.cfg mgallery.inc.php mgallery.php mgtool.php
diffstat 4 files changed, 31 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/example.cfg	Wed Mar 14 13:53:40 2018 +0200
+++ b/example.cfg	Wed Mar 14 15:21:42 2018 +0200
@@ -42,7 +42,6 @@
 
 ;image_url            = "/gallery/"
 ;mgallery_php         = "mgallery.php"
-;tn_path              = "tn/"
 ;format_exts          = "\.jpg|\.png|\.gif|\.jpeg"
 
 ;captions_file        = "captions.txt"
@@ -55,7 +54,8 @@
 ;;;
 ;;; Thumbnail/medium size image settings
 ;;;
-;med_suffix           = ".med"
+;tn_path              = "tn/"
+;med_path             = "med/"
 
 ;;; If you change thumbnail resolutions, you may wish to change the CSS files as well
 ; tn CSS selector: .galleryEntry
--- a/mgallery.inc.php	Wed Mar 14 13:53:40 2018 +0200
+++ b/mgallery.inc.php	Wed Mar 14 15:21:42 2018 +0200
@@ -85,8 +85,8 @@
   "image_flags"      => [MG_FLAGS, MGF_JAVASCRIPT | MGF_BREADCRUMBS, &$mgGFlags],
   "album_flags"      => [MG_FLAGS, MGF_JAVASCRIPT | MGF_BREADCRUMBS, &$mgGFlags],
 
-  "med_suffix"       => [MG_STR, ".med"],
   "tn_path"          => [MG_STR, "tn/"],
+  "med_path"         => [MG_STR, "med/"],
 
   "tn_width"         => [MG_INT, 140],  // In pixels, applies as bounding box for w/h
   "tn_height"        => [MG_INT, 100],
--- a/mgallery.php	Wed Mar 14 13:53:40 2018 +0200
+++ b/mgallery.php	Wed Mar 14 15:21:42 2018 +0200
@@ -255,9 +255,9 @@
     {
       echo
         "    <div class=\"imageBox\" title=\"".mgGetImageTitleStr($filename, $data).
-        "\"><a href=\"".mgGetURL($galPath, $filename)."\">".
-        "<img src=\"".mgGetImageURL($galTNPath, $filename)."\" alt=\"".
-        chentities($filename)."\"></a></div>\n".
+        "\"><a href=\"".mgGetURL($galPath, $filename)."\"><img src=\"".
+        mgGetImageURL($galMedPath, $filename).
+        "\" alt=\"".chentities($filename)."\"></a></div>\n".
         mgGetArr($data, "caption", "    <div class=\"imageCaption\">%1</div>\n", "", "chentities");
 /*
       if ($mode == "")
@@ -453,7 +453,7 @@
 $galAlbumIcon = mgGetSetting("album_icon");
 $galCleanURLS = mgGetSetting("clean_urls");
 $galTNPath = mgGetSetting("tn_path");
-$galMedSuffix = mgGetSetting("med_suffix");
+$galMedPath = mgGetSetting("med_path");
 $galTitlePrefix = mgGetSetting("title_prefix");
 $galTitleSep = mgGetSetting("title_sep");
 
@@ -577,9 +577,8 @@
       mgGetNaviControlImageBoxJS($galImagesIndex, $index, "prevBtm", -1)."\n".
       mgGetNaviControlImageBox($galImagesIndex, $index, "prev", -1)."\n".
       "<div id=\"imageImageBox\" class=\"imageBox\">".
-        "<img id=\"imageImage\" src=\"".
-        mgGetImageURL($galTNPath, $data["base"].$galMedSuffix.$data["ext"]).
-        "\" alt=\"".chentities($data["base"].$data["ext"])."\">".
+        "<img id=\"imageImage\" src=\"".mgGetImageURL($galMedPath, $galImage).
+        "\" alt=\"".chentities($galImage)."\">".
       "</div>\n".
       mgGetNaviControlImageBoxJS($galImagesIndex, $index, "nextBtm", 1)."\n".
       mgGetNaviControlImageBox($galImagesIndex, $index, "next", 1)."\n".
--- a/mgtool.php	Wed Mar 14 13:53:40 2018 +0200
+++ b/mgtool.php	Wed Mar 14 15:21:42 2018 +0200
@@ -460,7 +460,7 @@
 
 function mgHandleDirectory($mode, $basepath, $path, &$parentData, &$parentEntry, $writeMode, $startAt)
 {
-  global $galExifConversions, $galTNPath, $galCleanFlags;
+  global $galExifConversions, $galTNPath, $galMedPath, $galCleanFlags;
 
   // Get cache file path
   if (($cacheFilename = mgGetPath($path, "cache_file")) === FALSE)
@@ -478,7 +478,7 @@
     $realFile = $path."/".$dirFile;
     if (is_dir($realFile))
     {
-      if ($dirFile[0] != "." && $dirFile != $galTNPath)
+      if ($dirFile[0] != "." && $dirFile != $galTNPath && $dirFile != $galMedPath)
         $entries[$dirFile] = ["type" => 1, "base" => $dirFile, "ext" => "", "mtime" => filemtime($realFile)];
     }
     else
@@ -501,6 +501,9 @@
 
       if ($galCleanFlags & GCLEAN_THUMBNAILS)
         mgDelete($path."/".$galTNPath, FALSE);
+
+      if ($galCleanFlags & GCLEAN_THUMBNAILS)
+        mgDelete($path."/".$galMedPath, FALSE);
     }
   }
   else
@@ -555,7 +558,8 @@
       {
         $updFlags = 0;
         $tnPath = $path."/".$galTNPath;
-        $medFilename = $tnPath."/".$edata["base"].mgGetSetting("med_suffix").$edata["ext"];
+        $medPath = $path."/".$galMedPath;
+        $medFilename = $medPath."/".$ename;
         $tnFilename = $tnPath."/".$ename;
         $capFilename = $path."/".$edata["base"].".txt";
 
@@ -596,6 +600,7 @@
         if ($updFlags & GUPD_IMAGES)
         {
           mgMakeDir($tnPath, 0755);
+          mgMakeDir($medPath, 0755);
 
           if ($updFlags & GUPD_MED_IMAGE)
           {
@@ -687,18 +692,27 @@
 }
 
 
+function mgCheckMPath($path, $id)
+{
+  if ($path."/" != mgGetSetting($id))
+    mgError("Invalid ".$id." '".mgGetSetting($id)."', using '".$path."'.\n");
+
+  if (strpos($path, "/") !== FALSE || $path == "")
+    mgFatal("Invalid ".$id." '".$path."'.\n");
+}
+
+
 function mgProcessGalleries($cmd, $path)
 {
-  global $galTNPath;
+  global $galTNPath, $galMedPath;
 
   // Check validity of some settings
   $galPath = mgGetSetting("base_path");
   $galTNPath = mgCleanPath(TRUE, mgGetSetting("tn_path"));
-  if ($galTNPath."/" != mgGetSetting("tn_path"))
-    mgError("Invalid tn_path '".mgGetSetting("tn_path")."', using '".$galTNPath."'.\n");
+  $galMedPath = mgCleanPath(TRUE, mgGetSetting("med_path"));
 
-  if (strpos($galTNPath, "/") !== FALSE || $galTNPath == "")
-    mgFatal("Invalid tn_path '".$galTNPath."'.\n");
+  mgCheckMPath($galTNPath, "tn_path");
+  mgCheckMPath($galMedPath, "med_path");
 
   $parentData = $parentEntry = NULL;
   $writeMode = TRUE;