Mercurial > hg > mgallery
changeset 48:5a2dd41ff7ad
Initial implementation of language selector.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Wed, 25 May 2016 20:33:36 +0300 |
parents | 1e2b55775a84 |
children | afa835f5c000 |
files | basic.css mgallery.php |
diffstat | 2 files changed, 58 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/basic.css Wed May 25 18:02:33 2016 +0300 +++ b/basic.css Wed May 25 20:33:36 2016 +0300 @@ -239,3 +239,14 @@ margin-right: auto; border: 4px solid white; } + + +#languages { + position: absolute; + right: 1.5em; + top: 2em; + background: rgba(0,0,0,0.2); + border: 2px solid (255,255,255,0.2); + border-radius: 0.3em; + padding: 0.25em; +}
--- a/mgallery.php Wed May 25 18:02:33 2016 +0300 +++ b/mgallery.php Wed May 25 20:33:36 2016 +0300 @@ -6,6 +6,13 @@ require "mgeneric.inc.php"; require "mgallery.inc.php"; +$pageLang = "fi"; +$pageLanguages = +[ + "fi" => "Finnish", + "en" => "English", +]; + // // Various utility functions @@ -45,6 +52,21 @@ } +function mgGetLanguageSelector() +{ + global $pageLang, $pageLanguages; + if (isset($pageLanguages) && count($pageLanguages) > 0) + { + $str = "<div id=\"languages\">"; + foreach ($pageLanguages as $id => $lang) + $str .= "<a href=\"?lang=".$id."\">".$lang."</a> "; + return $str."</div>\n"; + } + else + return ""; +} + + function mgGetNaviActive(&$galIndex, $index, $delta, &$res, &$url, $entities) { global $galPath; @@ -358,6 +380,27 @@ // +// Check language +// +if (($tmp = stGetRequestItem("lang", FALSE, TRUE)) !== FALSE) +{ + $tmp = strtolower($tmp); + if (array_key_exists($tmp, $pageLanguages)) + { + $pageLang = $tmp; + setcookie("mglang", $tmp, time() + 365*24*60*60); // expire in a year + } +} +else +if (isset($_COOKIE["mglang"])) +{ + $tmp = $_COOKIE["mglang"]; + if (array_key_exists($tmp, $pageLanguages)) + $pageLang = $tmp; +} + + +// // Print page header, etc. // if (($index = array_search($galImage, $galImagesIndex)) !== FALSE) @@ -371,6 +414,7 @@ $pageTitle = $galTitlePrefix.$galTitleSep.mgGetTrans($galData["caption"])." - ".$galImage; cmPrintPageHeader($pageTitle); echo + mgGetLanguageSelector(). "<div id=\"imageLarge\"><img src=\"". $galImageURL.$galPath."/".$galImage."\" alt=\"". chentities($data["base"].$galMedSuffix.$data["ext"])."\" /></div>\n". @@ -515,7 +559,9 @@ // $pageTitle = $galTitlePrefix.mgGetArr($galData, "caption", " - %1", "", "chentities"); cmPrintPageHeader($pageTitle); - echo "<h1>".$pageTitle."</h1>\n"; + echo + mgGetLanguageSelector(). + "<h1>".$pageTitle."</h1>\n"; $naviFlags = mgGetSetting("album_navigation"); if ($naviFlags & GNAV_BREADCRUMBS)