Add selected language and theme to a cookie so we can restore them from past sessions
authorGuillaume (ioguix) de Rorthais <ioguix@free.fr>
Sat, 20 Nov 2010 18:02:35 +0000 (19:02 +0100)
committerGuillaume (ioguix) de Rorthais <ioguix@free.fr>
Sat, 20 Nov 2010 18:02:35 +0000 (19:02 +0100)
intro.php
libraries/lib.inc.php

index 91ed0a4609ad2f0a95594f6420a542047ac5049f..c2b2969bd744f07ec293f6432b5aa8fecc411e35 100755 (executable)
--- a/intro.php
+++ b/intro.php
                <td>
                        <select name="theme" onchange="this.form.submit()">
                        <?php
-                       $theme = isset($_SESSION['ppaTheme']) ? $_SESSION['ppaTheme'] : 'default';
                        foreach ($appThemes as $k => $v) {
                                echo "\t<option value=\"{$k}\"",
-                                       ($k == $theme) ? ' selected="selected"' : '',
+                                       ($k == $conf['theme']) ? ' selected="selected"' : '',
                                        ">{$v}</option>\n";
                        }
                        ?>
index f5ac6104d145e18b47ae91371fcfd90a280d05f7..08975ba982c23a0f417f6e2f90b2900db522d3d3 100644 (file)
 
        /* select the theme */
        unset($_theme);
+       $conf['theme'] = 'default';
+
        // 1. Check for the theme from a request var
        if (isset($_REQUEST['theme']) && is_file("./themes/{$_REQUEST['theme']}/global.css")) {
+               /* save the selected theme in cookie for a year */
+               setcookie('ppaTheme', $_REQUEST['theme'], time()+31536000);
                $_theme = $_SESSION['ppaTheme'] = $conf['theme'] = $_REQUEST['theme'];
        }
-       
+
        // 2. Check for theme session var
        if (!isset($_theme) && isset($_SESSION['ppaTheme']) && is_file("./themes/{$_SESSION['ppaTheme']}/global.css")) {
                $conf['theme']  = $_SESSION['ppaTheme'];
        }
 
+       // 3. Check for theme in cookie var
+       if (!isset($_theme) && isset($_COOKIE['ppaTheme']) && is_file("./themes/{$_COOKIE['ppaTheme']}/global.css")) {
+               $conf['theme']  = $_COOKIE['ppaTheme'];
+       }
+
        // Determine language file to import:
        unset($_language);
 
        // 1. Check for the language from a request var
-       if (isset($_REQUEST['language']) && isset($appLangFiles[$_REQUEST['language']]))
+       if (isset($_REQUEST['language']) && isset($appLangFiles[$_REQUEST['language']])) {
+               /* save the selected language in cookie for a year */
+               setcookie('webdbLanguage', $_REQUEST['language'], time()+31536000);
                $_language = $_REQUEST['language'];
+       }
 
        // 2. Check for language session var
        if (!isset($_language) && isset($_SESSION['webdbLanguage']) && isset($appLangFiles[$_SESSION['webdbLanguage']])) {
                $_language = $_SESSION['webdbLanguage'];
        }
 
-       // 3. Check for acceptable languages in HTTP_ACCEPT_LANGUAGE var
+       // 3. Check for language in cookie var
+       if (!isset($_language) && isset($_COOKIE['webdbLanguage']) && isset($appLangFiles[$_COOKIE['webdbLanguage']])) {
+               $_language  = $_COOKIE['webdbLanguage'];
+       }
+
+       // 4. Check for acceptable languages in HTTP_ACCEPT_LANGUAGE var
        if (!isset($_language) && $conf['default_lang'] == 'auto' && isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
                // extract acceptable language tags
                // (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4)
                }
        }
 
-       // 4. Otherwise resort to the default set in the config file
+       // 5. Otherwise resort to the default set in the config file
        if (!isset($_language) && $conf['default_lang'] != 'auto' && isset($appLangFiles[$conf['default_lang']])) {
                $_language = $conf['default_lang'];
        }