diff options
Diffstat (limited to 'program')
-rw-r--r-- | program/include/main.inc | 40 | ||||
-rw-r--r-- | program/steps/settings/save_prefs.inc | 16 |
2 files changed, 37 insertions, 19 deletions
diff --git a/program/include/main.inc b/program/include/main.inc index a3a391359..c0dd71ecb 100644 --- a/program/include/main.inc +++ b/program/include/main.inc @@ -219,10 +219,19 @@ function rcmail_shutdown() // destroy session data and remove cookie function rcmail_kill_session() { -/* $sess_name = session_name(); - if (isset($_COOKIE[$sess_name])) - setcookie($sess_name, '', time()-42000, '/'); -*/ + // save user preferences + $a_user_prefs = $_SESSION['user_prefs']; + if (!is_array($a_user_prefs)) + $a_user_prefs = array(); + + if ((isset($_SESSION['sort_col']) && $_SESSION['sort_col']!=$a_user_prefs['message_sort_col']) || + (isset($_SESSION['sort_order']) && $_SESSION['sort_order']!=$a_user_prefs['message_sort_order'])) + { + $a_user_prefs['message_sort_col'] = $_SESSION['sort_col']; + $a_user_prefs['message_sort_order'] = $_SESSION['sort_order']; + rcmail_save_user_prefs($a_user_prefs); + } + $_SESSION = array(); session_destroy(); } @@ -617,6 +626,29 @@ function rcmail_user2email($user) } +function rcmail_save_user_prefs($a_user_prefs) + { + global $DB, $CONFIG, $sess_user_lang; + + $DB->query("UPDATE ".get_table_name('users')." + SET preferences=?, + language=? + WHERE user_id=?", + serialize($a_user_prefs), + $sess_user_lang, + $_SESSION['user_id']); + + if ($DB->affected_rows()) + { + $_SESSION['user_prefs'] = $a_user_prefs; + $CONFIG = array_merge($CONFIG, $a_user_prefs); + return TRUE; + } + + return FALSE; + } + + // overwrite action variable function rcmail_overwrite_action($action) { diff --git a/program/steps/settings/save_prefs.inc b/program/steps/settings/save_prefs.inc index 81ffbe80a..98912daae 100644 --- a/program/steps/settings/save_prefs.inc +++ b/program/steps/settings/save_prefs.inc @@ -38,22 +38,8 @@ if (isset($_POST['_language'])) rcmail_set_locale($sess_user_lang); } - -$DB->query("UPDATE ".get_table_name('users')." - SET preferences=?, - language=? - WHERE user_id=?", - serialize($a_user_prefs), - $sess_user_lang, - $_SESSION['user_id']); - -if ($DB->affected_rows()) - { +if (rcmail_save_user_prefs($a_user_prefs)) show_message('successfullysaved', 'confirmation'); - - $_SESSION['user_prefs'] = $a_user_prefs; - $CONFIG = array_merge($CONFIG, $a_user_prefs); - } // go to next step |