comparison mgallery.php @ 65:7019d87bc479

Improve/fix language selection support to store language cookie better.
author Matti Hamalainen <ccr@tnsp.org>
date Wed, 14 Sep 2016 12:57:28 +0300
parents 1c32ece9acde
children be68b2d06674
comparison
equal deleted inserted replaced
64:9a01e14b27ef 65:7019d87bc479
52 } 52 }
53 53
54 54
55 function mgGetLanguageSelector() 55 function mgGetLanguageSelector()
56 { 56 {
57 global $pageLang, $pageLanguages; 57 global $pageLang, $pageLanguages, $galBaseURL;
58 if (isset($pageLanguages) && count($pageLanguages) > 0) 58 if (isset($pageLanguages) && count($pageLanguages) > 0)
59 { 59 {
60 $str = "<div id=\"languages\">"; 60 $str = "<div id=\"languages\">";
61 foreach ($pageLanguages as $id => $lang) 61 foreach ($pageLanguages as $id => $lang)
62 $str .= "<a href=\"?lang=".$id."\">".$lang."</a> "; 62 $str .= "<a href=\"".$galBaseURL."?from=".urlencode($_SERVER["REQUEST_URI"])."&amp;lang=".$id."\">".$lang."</a> ";
63 return $str."</div>\n"; 63 return $str."</div>\n";
64 } 64 }
65 else 65 else
66 return ""; 66 return "";
67 } 67 }
314 } 314 }
315 } 315 }
316 316
317 317
318 // 318 //
319 // Check language
320 //
321 if (($tmp = stGetRequestItem("lang", FALSE, TRUE)) !== FALSE)
322 {
323 $tmp = strtolower($tmp);
324 if (array_key_exists($tmp, $pageLanguages))
325 {
326 $pageLang = $tmp;
327 setcookie("mglang", $tmp, time() + 365*24*60*60); // expire in a year
328 }
329 }
330 else
331 if (isset($_COOKIE["mglang"]))
332 {
333 $tmp = strtolower($_COOKIE["mglang"]);
334 if (array_key_exists($tmp, $pageLanguages))
335 $pageLang = $tmp;
336 }
337
338
339 //
340 // Check for "from" redirection
341 //
342 if (($from = stGetRequestItem("from", FALSE, TRUE)) !== FALSE &&
343 preg_match("@^[a-z0-9/_.]+\$@i", $from))
344 {
345 header("Location: ".$from);
346 exit;
347 }
348
349
350 //
319 // Get gallery settings 351 // Get gallery settings
320 // 352 //
321 mgReadSettings(); 353 mgReadSettings();
322 354
323 $pageCSS = mgGetSetting("css"); 355 $pageCSS = mgGetSetting("css");
374 //echo "<p>filename=: '".$filename."', X: galData=".intval(isset($galData)).", galEntries=".intval(isset($galEntries))."\n"; 406 //echo "<p>filename=: '".$filename."', X: galData=".intval(isset($galData)).", galEntries=".intval(isset($galEntries))."\n";
375 407
376 mgPrintPageInfoFooter(); 408 mgPrintPageInfoFooter();
377 cmPrintPageFooter(TRUE); 409 cmPrintPageFooter(TRUE);
378 exit; 410 exit;
379 }
380
381
382 //
383 // Check language
384 //
385 if (($tmp = stGetRequestItem("lang", FALSE, TRUE)) !== FALSE)
386 {
387 $tmp = strtolower($tmp);
388 if (array_key_exists($tmp, $pageLanguages))
389 {
390 $pageLang = $tmp;
391 setcookie("mglang", $tmp, time() + 365*24*60*60); // expire in a year
392 }
393 }
394 else
395 if (isset($_COOKIE["mglang"]))
396 {
397 $tmp = strtolower($_COOKIE["mglang"]);
398 if (array_key_exists($tmp, $pageLanguages))
399 $pageLang = $tmp;
400 } 411 }
401 412
402 413
403 // 414 //
404 // Print page header, etc. 415 // Print page header, etc.