From db0f327120453b3886a6b2353ed3cb2db4a10c26 Mon Sep 17 00:00:00 2001 From: roundcube Date: Thu, 13 Apr 2006 18:23:48 +0000 Subject: Added sort order saving patch by Jacob Brunson git-svn-id: https://svn.roundcube.net/trunk@194 208e9e7b-5314-0410-a742-e7e81cd9613c --- roundcubemail/program/include/main.inc | 40 +++++++++++++++++++--- .../program/steps/settings/save_prefs.inc | 16 +-------- 2 files changed, 37 insertions(+), 19 deletions(-) (limited to 'roundcubemail/program') diff --git a/roundcubemail/program/include/main.inc b/roundcubemail/program/include/main.inc index a3a391359..c0dd71ecb 100644 --- a/roundcubemail/program/include/main.inc +++ b/roundcubemail/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/roundcubemail/program/steps/settings/save_prefs.inc b/roundcubemail/program/steps/settings/save_prefs.inc index 81ffbe80a..98912daae 100644 --- a/roundcubemail/program/steps/settings/save_prefs.inc +++ b/roundcubemail/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 -- cgit v1.2.3