From 3b6b91ad1e6ba80b28617cbf1e328cc8ed28b265 Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Sun, 15 Jun 2008 05:25:19 -0400 Subject: [PATCH] - lost files from r1539 --- program/steps/settings/save_prefs.inc | 70 +++++++++++++++++++---------------- 1 files changed, 38 insertions(+), 32 deletions(-) diff --git a/program/steps/settings/save_prefs.inc b/program/steps/settings/save_prefs.inc index 7cc3270..6a0498b 100644 --- a/program/steps/settings/save_prefs.inc +++ b/program/steps/settings/save_prefs.inc @@ -5,7 +5,7 @@ | program/steps/settings/save_prefs.inc | | | | This file is part of the RoundCube Webmail client | - | Copyright (C) 2005, RoundCube Dev. - Switzerland | + | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland | | Licensed under the GNU GPL | | | | PURPOSE: | @@ -19,44 +19,50 @@ */ -$a_user_prefs = $_SESSION['user_prefs']; -if (!is_array($a_user_prefs)) - $a_user_prefs = array(); +$a_user_prefs = array( + 'timezone' => isset($_POST['_timezone']) ? floatval($_POST['_timezone']) : $CONFIG['timezone'], + 'dst_active' => isset($_POST['_dst_active']) ? TRUE : FALSE, + 'pagesize' => is_numeric($_POST['_pagesize']) ? max(2, intval($_POST['_pagesize'])) : $CONFIG['pagesize'], + 'prettydate' => isset($_POST['_pretty_date']) ? TRUE : FALSE, + 'prefer_html' => isset($_POST['_prefer_html']) ? TRUE : FALSE, + 'addrbook_show_images' => isset($_POST['_addrbook_show_images']) ? TRUE : FALSE, + 'htmleditor' => isset($_POST['_htmleditor']) ? TRUE : FALSE, + 'inline_images' => isset($_POST['_inline_images']) ? TRUE : FALSE, + 'preview_pane' => isset($_POST['_preview_pane']) ? TRUE : FALSE, + 'read_when_deleted' => isset($_POST['_read_when_deleted']) ? TRUE : FALSE, + 'flag_for_deletion' => isset($_POST['_flag_for_deletion']) ? TRUE : FALSE, + 'logout_purge' => isset($_POST['_logout_purge']) ? TRUE : FALSE, + 'logout_expunge' => isset($_POST['_logout_expunge']) ? TRUE : FALSE, + 'draft_autosave' => isset($_POST['_draft_autosave']) ? intval($_POST['_draft_autosave']) : 0, + 'mdn_requests' => isset($_POST['_mdn_requests']) ? intval($_POST['_mdn_requests']) : 0, + 'skin' => isset($_POST['_skin']) ? get_input_value('_skin', RCUBE_INPUT_POST) : $CONFIG['default_skin'], + ); + +// don't override these parameters +foreach ((array)$CONFIG['dont_override'] as $p) + $a_user_prefs[$p] = $CONFIG[$p]; -$a_user_prefs['timezone'] = isset($_POST['_timezone']) ? (int)$_POST['_timezone'] : $CONFIG['timezone']; -$a_user_prefs['pagesize'] = is_numeric($_POST['_pagesize']) ? (int)$_POST['_pagesize'] : $CONFIG['pagesize']; -$a_user_prefs['prefer_html'] = isset($_POST['_prefer_html']) ? TRUE : FALSE; +// switch UI language +if (isset($_POST['_language'])) { + $RCMAIL->load_language(get_input_value('_language', RCUBE_INPUT_POST)); +} -// MM: Date format toggle (Pretty / Standard) -$a_user_prefs['prettydate'] = isset($_POST['_pretty_date']) ? TRUE : FALSE; +// switch skin +$OUTPUT->set_skin($a_user_prefs['skin']); -if (isset($_POST['_language'])) - $sess_user_lang = $_SESSION['user_lang'] = $_POST['_language']; +// force min size +if ($a_user_prefs['pagesize'] < 1) + $a_user_prefs['pagesize'] = 10; +if (isset($CONFIG['max_pagesize']) && ($a_user_prefs['pagesize'] > $CONFIG['max_pagesize'])) + $a_user_prefs['pagesize'] = (int) $CONFIG['max_pagesize']; -$DB->query(sprintf("UPDATE %s - SET preferences='%s', - language='%s' - WHERE user_id=%d", - get_table_name('users'), - addslashes(serialize($a_user_prefs)), - $sess_user_lang, - $_SESSION['user_id'])); - -if ($DB->affected_rows()) - { - show_message('successfullysaved', 'confirmation'); - - $_SESSION['user_prefs'] = $a_user_prefs; - $CONFIG = array_merge($CONFIG, $a_user_prefs); - } +if ($USER->save_prefs($a_user_prefs)) + $OUTPUT->show_message('successfullysaved', 'confirmation'); // go to next step -$_action = 'preferences'; +rcmail_overwrite_action('preferences'); -// overwrite action variable -$OUTPUT->add_script(sprintf("\n%s.set_env('action', '%s');", $JS_OBJECT_NAME, $_action)); - -?> \ No newline at end of file +?> -- Gitblit v1.9.1