summaryrefslogtreecommitdiff
path: root/program
diff options
context:
space:
mode:
Diffstat (limited to 'program')
-rw-r--r--program/include/main.inc40
-rw-r--r--program/steps/settings/save_prefs.inc16
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