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)