summaryrefslogtreecommitdiff
path: root/program/steps/utils/save_pref.inc
diff options
context:
space:
mode:
Diffstat (limited to 'program/steps/utils/save_pref.inc')
-rw-r--r--program/steps/utils/save_pref.inc45
1 files changed, 45 insertions, 0 deletions
diff --git a/program/steps/utils/save_pref.inc b/program/steps/utils/save_pref.inc
new file mode 100644
index 000000000..25f12df3b
--- /dev/null
+++ b/program/steps/utils/save_pref.inc
@@ -0,0 +1,45 @@
+<?php
+/*
+
+ +-----------------------------------------------------------------------+
+ | program/steps/utils/save_pref.inc |
+ | |
+ | This file is part of the RoundCube Webmail client |
+ | Copyright (C) 2005-2010, RoundCube Dev. - Switzerland |
+ | Licensed under the GNU GPL |
+ | |
+ | PURPOSE: |
+ | Save preferences setting in database |
+ | |
+ +-----------------------------------------------------------------------+
+ | Author: Aleksander Machniak <alec@alec.pl> |
+ +-----------------------------------------------------------------------+
+
+ $Id: html2text.inc 3780 2010-06-23 09:55:08Z alec $
+
+*/
+
+$name = get_input_value('_name', RCUBE_INPUT_POST);
+$value = get_input_value('_value', RCUBE_INPUT_POST);
+
+// save preference value
+$RCMAIL->user->save_prefs(array($name => $value));
+
+// update also session if requested
+if ($sessname = get_input_value('_session', RCUBE_INPUT_POST)) {
+ // Support multidimensional arrays...
+ $vars = explode('/', $sessname);
+
+ // ... up to 3 levels
+ if (count($vars) == 1)
+ $_SESSION[$vars[0]] = $value;
+ else if (count($vars) == 2)
+ $_SESSION[$vars[0]][$vars[1]] = $value;
+ else if (count($vars) == 3)
+ $_SESSION[$vars[0]][$vars[1]][$vars[2]] = $value;
+}
+
+$OUTPUT->reset();
+$OUTPUT->send();
+
+