Mercurial > hg > mgallery
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"])."&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. |