# HG changeset patch # User Matti Hamalainen # Date 1693994681 -10800 # Node ID 7da360685721279c6c3d40d3f1e75e253d235c33 # Parent 4425fe467c81dd80deca9cb5f3284fbf4a168859 Implement show_keywords setting. diff -r 4425fe467c81 -r 7da360685721 mgallery.inc.php --- a/mgallery.inc.php Sun Aug 27 05:35:23 2023 +0300 +++ b/mgallery.inc.php Wed Sep 06 13:04:41 2023 +0300 @@ -85,6 +85,7 @@ "cover_images" => [MG_BOOL, TRUE], "album_icon" => [MG_STR, NULL], + "show_keywords" => [MG_CALLABLE, FALSE, "mgParseShowKeywords"], "title_prefix" => [MG_STR, ""], "title_sep" => [MG_STR, " - "], diff -r 4425fe467c81 -r 7da360685721 mgallery.php --- a/mgallery.php Sun Aug 27 05:35:23 2023 +0300 +++ b/mgallery.php Wed Sep 06 13:04:41 2023 +0300 @@ -51,6 +51,16 @@ "fi" => "Takaisin galleriasivulle.", "en" => "Back to gallery page.", ], + + "image_keywords_prefix" => [ + "fi" => "Avainsanat: ", + "en" => "Keywords: ", + ], + + "image_keywords_suffix" => [ + "fi" => "", + "en" => "", + ], ]; @@ -286,7 +296,26 @@ } -function mgPrintTable($class, $galPath, &$galEntries, &$galIndex, $start, $limit) +function mgGetImageKeywords(&$galData, &$data, $fmt1, $fmt2) +{ + global $galShowKeywords; + $showKeywords = isset($galData["show_keywords"]) ? $galData["show_keywords"] : $galShowKeywords; + + if (is_array($showKeywords) && isset($data["keywords"]) && is_array($data["keywords"])) + { + if (array_intersect($showKeywords, ["*", "all"])) + $tmp = $data["keywords"]; + else + $tmp = array_intersect($showKeywords, $data["keywords"]); + + if (count($tmp) > 0) + return $fmt1.implode(", ", array_map("chentities", $tmp)).$fmt2; + } + return ""; +} + + +function mgPrintTable($class, $galData, $galPath, &$galEntries, &$galIndex, $start, $limit) { global $galAlbumIcon, $galTNPath, $galTNFormat, $galImageURL, $galUseCoverImages; @@ -314,7 +343,8 @@ "\">\"".dhentities($filename)."\"\n". - mgGetArr($data, "caption", "
%1
\n", "", "chentities"); + mgGetArr($data, "caption", "
%1
\n", "", "chentities"). + mgGetImageKeywords($galData, $data, "
(", ")
\n"); /* if ($mode == "") { @@ -490,6 +520,7 @@ $galImageURL = mgGetSetting("image_url", mgGetSetting("base_url")); $galUseCoverImages = mgGetSetting("cover_images"); +$galShowKeywords = mgGetSetting("show_keywords"); $galAlbumIcon = mgGetSetting("album_icon"); $galCleanURLS = mgGetSetting("clean_urls"); @@ -503,6 +534,7 @@ $galPageIndex = intval(mgGetRequestItem("index", 0, TRUE)); $galImage = mgGetRequestItem("image", FALSE, TRUE); + if (is_string($galImage)) $galImage = basename($galImage); @@ -617,8 +649,13 @@ mgGetNaviControlImageBoxJS($galPath, $galImagesIndex, $galEntries, $index, "nextBtm", 1)."\n". mgGetNaviControlImageBox($galPath, $galImagesIndex, $galEntries, $index, "next", 1)."\n". "\n". // pageImageBox - (isset($data["caption"]) ? "
".mgGetArrStr($data, "caption", "%1")."
\n" : ""). - // infoBox + (isset($data["caption"]) ? + "
".mgGetArrStr($data, "caption", "%1"). + mgGetImageKeywords($galData, $data, " (".mgQM("image_keywords_prefix"), mgQM("image_keywords_suffix").")")."
\n" : + mgGetImageKeywords($galData, $data, "
".mgQM("image_keywords_prefix"), mgQM("image_keywords_suffix")."
\n") + ); + // infoBox + echo "
\n". mgGetArr($data, "datetime", "%1\n", "", "mgTimeStr"). implode(",\n", array_filter($list, function($a) { return $a !== NULL; }))."\n". @@ -709,8 +746,8 @@ echo mgGetPageInfoHeaderEnd(); - mgPrintTable("albumTable", $galPath, $galEntries, $galAlbumsIndex, 0, FALSE); - mgPrintTable("imageTable", $galPath, $galEntries, $galImagesIndex, 0, FALSE); + mgPrintTable("albumTable", $galData, $galPath, $galEntries, $galAlbumsIndex, 0, FALSE); + mgPrintTable("imageTable", $galData, $galPath, $galEntries, $galImagesIndex, 0, FALSE); } mgPrintPageFooter();