From 86f1721926af3b2b4ab0b82f9a0904ad3d2c0733 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Thu, 13 Apr 2006 14:23:48 -0400
Subject: [PATCH] Added sort order saving patch by Jacob Brunson

---
 program/include/main.inc |   40 ++++++++++++++++++++++++++++++++++++----
 1 files changed, 36 insertions(+), 4 deletions(-)

diff --git a/program/include/main.inc b/program/include/main.inc
index a3a3913..c0dd71e 100644
--- a/program/include/main.inc
+++ b/program/include/main.inc
@@ -219,10 +219,19 @@
 // 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_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)
   {

--
Gitblit v1.9.1