summaryrefslogtreecommitdiff
path: root/roundcubemail/program/steps
diff options
context:
space:
mode:
authoralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2011-04-11 11:12:00 +0000
committeralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2011-04-11 11:12:00 +0000
commit7f7a4bb1e875698c4899facadd01e8eb07cb21c8 (patch)
tree21df3612d820503ab96e06e5266b0b4f2b428337 /roundcubemail/program/steps
parente2a6a198729bea1477a3a3b4f19aaf65cb9042e6 (diff)
- Support 'abort' and 'result' response in 'preferences_save' hook, add error handling
git-svn-id: https://svn.roundcube.net/trunk@4641 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'roundcubemail/program/steps')
-rw-r--r--roundcubemail/program/steps/settings/save_prefs.inc15
1 files changed, 11 insertions, 4 deletions
diff --git a/roundcubemail/program/steps/settings/save_prefs.inc b/roundcubemail/program/steps/settings/save_prefs.inc
index 64aeb5f81..92e2d8b9d 100644
--- a/roundcubemail/program/steps/settings/save_prefs.inc
+++ b/roundcubemail/program/steps/settings/save_prefs.inc
@@ -97,10 +97,10 @@ switch ($CURR_SECTION)
break;
}
-$data = rcmail::get_instance()->plugins->exec_hook('preferences_save',
+$plugin = rcmail::get_instance()->plugins->exec_hook('preferences_save',
array('prefs' => $a_user_prefs, 'section' => $CURR_SECTION));
-$a_user_prefs = $data['prefs'];
+$a_user_prefs = $plugin['prefs'];
// don't override these parameters
foreach ((array)$CONFIG['dont_override'] as $p)
@@ -159,10 +159,17 @@ switch ($CURR_SECTION)
break;
}
-if ($USER->save_prefs($a_user_prefs))
+// Save preferences
+if (!$plugin['abort'])
+ $saved = $USER->save_prefs($a_user_prefs);
+else
+ $saved = $plugin['result'];
+
+if ($saved)
$OUTPUT->show_message('successfullysaved', 'confirmation');
+else
+ $OUTPUT->show_message($plugin['message'] ? $plugin['message'] : 'errorsaving', 'error');
// display the form again
rcmail_overwrite_action('edit-prefs');
-