diff options
| author | Aleksander Machniak <alec@alec.pl> | 2013-12-31 16:57:58 +0100 | 
|---|---|---|
| committer | Aleksander Machniak <alec@alec.pl> | 2013-12-31 16:57:58 +0100 | 
| commit | d575e46067c06f1165adb249865f3812e270df12 (patch) | |
| tree | 5bff2b96c4d3756555fdfc511d1a0186b88a0854 | |
| parent | f5d2eef55c89b7f1a5549704705c25fd7f0c0185 (diff) | |
CS fixes
| -rw-r--r-- | program/steps/settings/about.inc | 119 | ||||
| -rw-r--r-- | program/steps/settings/delete_identity.inc | 38 | ||||
| -rw-r--r-- | program/steps/settings/edit_folder.inc | 27 | ||||
| -rw-r--r-- | program/steps/settings/edit_identity.inc | 236 | ||||
| -rw-r--r-- | program/steps/settings/edit_prefs.inc | 84 | ||||
| -rw-r--r-- | program/steps/settings/edit_response.inc | 19 | ||||
| -rw-r--r-- | program/steps/settings/folders.inc | 4 | ||||
| -rw-r--r-- | program/steps/settings/func.inc | 71 | ||||
| -rw-r--r-- | program/steps/settings/identities.inc | 27 | ||||
| -rw-r--r-- | program/steps/settings/responses.inc | 19 | ||||
| -rw-r--r-- | program/steps/settings/save_folder.inc | 5 | ||||
| -rw-r--r-- | program/steps/settings/save_identity.inc | 206 | ||||
| -rw-r--r-- | program/steps/settings/save_prefs.inc | 236 | 
13 files changed, 560 insertions, 531 deletions
| diff --git a/program/steps/settings/about.inc b/program/steps/settings/about.inc index eae4da842..026bfc1a2 100644 --- a/program/steps/settings/about.inc +++ b/program/steps/settings/about.inc @@ -5,8 +5,8 @@   | program/steps/settings/about.inc                                      |   |                                                                       |   | This file is part of the Roundcube Webmail client                     | - | Copyright (C) 2005-2011, The Roundcube Dev Team                       | - | Copyright (C) 2011, Kolab Systems AG                                  | + | Copyright (C) 2005-2013, The Roundcube Dev Team                       | + | Copyright (C) 2011-2013, Kolab Systems AG                             |   |                                                                       |   | Licensed under the GNU General Public License version 3 or            |   | any later version with exceptions for skins & plugins.                | @@ -21,78 +21,83 @@  */ +$OUTPUT->set_pagetitle($RCMAIL->gettext('about')); + +$OUTPUT->add_handler('supportlink', 'rcmail_supportlink'); +$OUTPUT->add_handler('pluginlist', 'rcmail_plugins_list'); + +$OUTPUT->send('about'); + + +  function rcmail_supportlink($attrib)  { -  global $RCMAIL; +    global $RCMAIL; -  if ($url = $RCMAIL->config->get('support_url')) { -    $label = $attrib['label'] ? $attrib['label'] : 'support'; -    $attrib['href'] = $url; -    return html::a($attrib, $RCMAIL->gettext($label)); -  } +    if ($url = $RCMAIL->config->get('support_url')) { +        $label = $attrib['label'] ? $attrib['label'] : 'support'; +        $attrib['href'] = $url; + +        return html::a($attrib, $RCMAIL->gettext($label)); +    }  }  function rcmail_plugins_list($attrib)  { -  global $RCMAIL; - -  if (!$attrib['id']) -    $attrib['id'] = 'rcmpluginlist'; +    global $RCMAIL; -  $plugins = array_filter((array) $RCMAIL->config->get('plugins')); -  $plugin_info = array(); - -  foreach ($plugins as $name) { -    if ($info = $RCMAIL->plugins->get_info($name)) -      $plugin_info[$name] = $info; -  } - -  // load info from required plugins, too -  foreach ($plugin_info as $name => $info) { -    if (is_array($info['required']) && !empty($info['required'])) { -      foreach ($info['required'] as $req_name) { -        if (!isset($plugin_info[$req_name]) && ($req_info = $RCMAIL->plugins->get_info($req_name))) -          $plugin_info[$req_name] = $req_info; -      } +    if (!$attrib['id']) { +        $attrib['id'] = 'rcmpluginlist';      } -  } - -  if (empty($plugin_info)) { -    return ''; -  } -  ksort($plugin_info, SORT_LOCALE_STRING); +    $plugins     = array_filter((array) $RCMAIL->config->get('plugins')); +    $plugin_info = array(); -  $table = new html_table($attrib); +    foreach ($plugins as $name) { +        if ($info = $RCMAIL->plugins->get_info($name)) { +            $plugin_info[$name] = $info; +        } +    } -  // add table header -  $table->add_header('name', $RCMAIL->gettext('plugin')); -  $table->add_header('version', $RCMAIL->gettext('version')); -  $table->add_header('license', $RCMAIL->gettext('license')); -  $table->add_header('source', $RCMAIL->gettext('source')); +    // load info from required plugins, too +    foreach ($plugin_info as $name => $info) { +        if (is_array($info['required']) && !empty($info['required'])) { +            foreach ($info['required'] as $req_name) { +                if (!isset($plugin_info[$req_name]) && ($req_info = $RCMAIL->plugins->get_info($req_name))) { +                    $plugin_info[$req_name] = $req_info; +                } +            } +        } +    } -  foreach ($plugin_info as $name => $data) { -    $uri = $data['src_uri'] ? $data['src_uri'] : $data['uri']; -    if ($uri && stripos($uri, 'http') !== 0) { -      $uri = 'http://' . $uri; +    if (empty($plugin_info)) { +        return '';      } -    $table->add_row(); -    $table->add('name', rcube::Q($data['name'] ? $data['name'] : $name)); -    $table->add('version', rcube::Q($data['version'])); -    $table->add('license', $data['license_uri'] ? html::a(array('target' => '_blank', href=> rcube::Q($data['license_uri'])), -        rcube::Q($data['license'])) : $data['license']); -    $table->add('source', $uri ? html::a(array('target' => '_blank', href=> rcube::Q($uri)), -        rcube::Q($RCMAIL->gettext('download'))) : ''); -  } +    ksort($plugin_info, SORT_LOCALE_STRING); -  return $table->show(); -} +    $table = new html_table($attrib); +    // add table header +    $table->add_header('name', $RCMAIL->gettext('plugin')); +    $table->add_header('version', $RCMAIL->gettext('version')); +    $table->add_header('license', $RCMAIL->gettext('license')); +    $table->add_header('source', $RCMAIL->gettext('source')); -$OUTPUT->set_pagetitle($RCMAIL->gettext('about')); +    foreach ($plugin_info as $name => $data) { +        $uri = $data['src_uri'] ? $data['src_uri'] : $data['uri']; +        if ($uri && stripos($uri, 'http') !== 0) { +            $uri = 'http://' . $uri; +        } -$OUTPUT->add_handler('supportlink', 'rcmail_supportlink'); -$OUTPUT->add_handler('pluginlist', 'rcmail_plugins_list'); +        $table->add_row(); +        $table->add('name', rcube::Q($data['name'] ? $data['name'] : $name)); +        $table->add('version', rcube::Q($data['version'])); +        $table->add('license', $data['license_uri'] ? html::a(array('target' => '_blank', href=> rcube::Q($data['license_uri'])), +            rcube::Q($data['license'])) : $data['license']); +        $table->add('source', $uri ? html::a(array('target' => '_blank', href=> rcube::Q($uri)), +            rcube::Q($RCMAIL->gettext('download'))) : ''); +    } -$OUTPUT->send('about'); +    return $table->show(); +} diff --git a/program/steps/settings/delete_identity.inc b/program/steps/settings/delete_identity.inc index 85d128c8f..f77620438 100644 --- a/program/steps/settings/delete_identity.inc +++ b/program/steps/settings/delete_identity.inc @@ -5,7 +5,7 @@   | program/steps/settings/delete_identity.inc                            |   |                                                                       |   | This file is part of the Roundcube Webmail client                     | - | Copyright (C) 2005-2009, The Roundcube Dev Team                       | + | Copyright (C) 2005-2013, The Roundcube Dev Team                       |   |                                                                       |   | Licensed under the GNU General Public License version 3 or            |   | any later version with exceptions for skins & plugins.                | @@ -23,29 +23,33 @@ $iid = rcube_utils::get_input_value('_iid', rcube_utils::INPUT_GPC);  // check request token  if (!$OUTPUT->ajax_call && !$RCMAIL->check_request(rcube_utils::INPUT_GPC)) { -  $OUTPUT->show_message('invalidrequest', 'error'); -  $RCMAIL->overwrite_action('identities'); -  return; +    $OUTPUT->show_message('invalidrequest', 'error'); +    $RCMAIL->overwrite_action('identities'); +    return;  } -if ($iid && preg_match('/^[0-9]+(,[0-9]+)*$/', $iid)) -{ -  $plugin = $RCMAIL->plugins->exec_hook('identity_delete', array('id' => $iid)); +if ($iid && preg_match('/^[0-9]+(,[0-9]+)*$/', $iid)) { +    $plugin = $RCMAIL->plugins->exec_hook('identity_delete', array('id' => $iid)); -  $deleted = !$plugin['abort'] ? $RCMAIL->user->delete_identity($iid) : $plugin['result']; +    $deleted = !$plugin['abort'] ? $RCMAIL->user->delete_identity($iid) : $plugin['result']; -  if ($deleted > 0 && $deleted !== false) -    $OUTPUT->show_message('deletedsuccessfully', 'confirmation', null, false); -  else -    $OUTPUT->show_message($plugin['message'] ? $plugin['message'] : ($deleted < 0 ? 'nodeletelastidentity' : 'errorsaving'), 'error', null, false); +    if ($deleted > 0 && $deleted !== false) { +        $OUTPUT->show_message('deletedsuccessfully', 'confirmation', null, false); +    } +    else { +        $msg = $plugin['message'] ? $plugin['message'] : ($deleted < 0 ? 'nodeletelastidentity' : 'errorsaving'); +        $OUTPUT->show_message($msg, 'error', null, false); +    } -  // send response -  if ($OUTPUT->ajax_call) -    $OUTPUT->send(); +    // send response +    if ($OUTPUT->ajax_call) { +        $OUTPUT->send(); +    }  } -if ($OUTPUT->ajax_call) -  exit; +if ($OUTPUT->ajax_call) { +    exit; +}  // go to identities page  $RCMAIL->overwrite_action('identities'); diff --git a/program/steps/settings/edit_folder.inc b/program/steps/settings/edit_folder.inc index ff28d04c8..fc6b2cd16 100644 --- a/program/steps/settings/edit_folder.inc +++ b/program/steps/settings/edit_folder.inc @@ -5,7 +5,7 @@   | program/steps/settings/edit_folder.inc                                |   |                                                                       |   | This file is part of the Roundcube Webmail client                     | - | Copyright (C) 2005-2009, The Roundcube Dev Team                       | + | Copyright (C) 2005-2013, The Roundcube Dev Team                       |   |                                                                       |   | Licensed under the GNU General Public License version 3 or            |   | any later version with exceptions for skins & plugins.                | @@ -19,6 +19,16 @@   +-----------------------------------------------------------------------+  */ +// register UI objects +$OUTPUT->add_handlers(array( +    'folderdetails' => 'rcmail_folder_form', +)); + +$OUTPUT->add_label('nonamewarning'); + +$OUTPUT->send('folderedit'); + +  // WARNING: folder names in UI are encoded with RCUBE_CHARSET  function rcmail_folder_form($attrib) @@ -256,7 +266,8 @@ function rcmail_folder_form($attrib)              foreach ($tab['fieldsets'] as $fieldset) {                  $subcontent = rcmail_get_form_part($fieldset, $attrib);                  if ($subcontent) { -                    $content .= html::tag('fieldset', null, html::tag('legend', null, rcube::Q($fieldset['name'])) . $subcontent) ."\n"; +                    $subcontent = html::tag('legend', null, rcube::Q($fieldset['name'])) . $subcontent; +                    $content .= html::tag('fieldset', null, $subcontent) ."\n";                  }              }          } @@ -300,15 +311,3 @@ function rcmail_get_form_part($form, $attrib = array())      return $content;  } - - -//$OUTPUT->set_pagetitle($RCMAIL->gettext('folders')); - -// register UI objects -$OUTPUT->add_handlers(array( -    'folderdetails' => 'rcmail_folder_form', -)); - -$OUTPUT->add_label('nonamewarning'); - -$OUTPUT->send('folderedit'); diff --git a/program/steps/settings/edit_identity.inc b/program/steps/settings/edit_identity.inc index 974acb42a..f208c8a05 100644 --- a/program/steps/settings/edit_identity.inc +++ b/program/steps/settings/edit_identity.inc @@ -5,7 +5,7 @@   | program/steps/settings/edit_identity.inc                              |   |                                                                       |   | This file is part of the Roundcube Webmail client                     | - | Copyright (C) 2005-2011, The Roundcube Dev Team                       | + | Copyright (C) 2005-2013, The Roundcube Dev Team                       |   |                                                                       |   | Licensed under the GNU General Public License version 3 or            |   | any later version with exceptions for skins & plugins.                | @@ -23,152 +23,158 @@ define('IDENTITIES_LEVEL', intval($RCMAIL->config->get('identities_level', 0)));  // edit-identity  if (($_GET['_iid'] || $_POST['_iid']) && $RCMAIL->action=='edit-identity') { -  $IDENTITY_RECORD = $RCMAIL->user->get_identity(rcube_utils::get_input_value('_iid', rcube_utils::INPUT_GPC)); +    $id = rcube_utils::get_input_value('_iid', rcube_utils::INPUT_GPC); +    $IDENTITY_RECORD = $RCMAIL->user->get_identity($id); -  if (is_array($IDENTITY_RECORD)) -    $OUTPUT->set_env('iid', $IDENTITY_RECORD['identity_id']); -  else { -    $OUTPUT->show_message('dberror', 'error'); -    // go to identities page -    $RCMAIL->overwrite_action('identities'); -    return; -  } +    if (is_array($IDENTITY_RECORD)) { +        $OUTPUT->set_env('iid', $IDENTITY_RECORD['identity_id']); +    } +    else { +        $OUTPUT->show_message('dberror', 'error'); +        // go to identities page +        $RCMAIL->overwrite_action('identities'); +        return; +    }  }  // add-identity  else { -  if (IDENTITIES_LEVEL > 1) { -    $OUTPUT->show_message('opnotpermitted', 'error'); -    // go to identities page -    $RCMAIL->overwrite_action('identities'); -    return; -  } -  else if (IDENTITIES_LEVEL == 1) { -    $IDENTITY_RECORD['email'] = $RCMAIL->get_user_email(); -  } +    if (IDENTITIES_LEVEL > 1) { +        $OUTPUT->show_message('opnotpermitted', 'error'); +        // go to identities page +        $RCMAIL->overwrite_action('identities'); +        return; +    } +    else if (IDENTITIES_LEVEL == 1) { +        $IDENTITY_RECORD['email'] = $RCMAIL->get_user_email(); +    }  } +$OUTPUT->include_script('list.js'); +$OUTPUT->add_handler('identityform', 'rcube_identity_form'); +$OUTPUT->set_env('identities_level', IDENTITIES_LEVEL); +$OUTPUT->add_label('deleteidentityconfirm'); -function rcube_identity_form($attrib) -{ -  global $IDENTITY_RECORD, $RCMAIL, $OUTPUT; +$OUTPUT->set_pagetitle($RCMAIL->gettext(($RCMAIL->action == 'add-identity' ? 'newidentity' : 'edititem'))); -  // Add HTML editor script(s) -  $RCMAIL->html_editor('identity'); +if ($RCMAIL->action == 'add-identity' && $OUTPUT->template_exists('identityadd')) { +    $OUTPUT->send('identityadd'); +} -  // add some labels to client -  $OUTPUT->add_label('noemailwarning', 'nonamewarning', 'converting', 'editorwarning'); +$OUTPUT->send('identityedit'); -  $i_size = !empty($attrib['size']) ? $attrib['size'] : 40; -  $t_rows = !empty($attrib['textarearows']) ? $attrib['textarearows'] : 6; -  $t_cols = !empty($attrib['textareacols']) ? $attrib['textareacols'] : 40; -  // list of available cols -  $form = array( -    'addressing' => array( -      'name'    => $RCMAIL->gettext('settings'), -      'content' => array( -        'name'         => array('type' => 'text', 'size' => $i_size), -        'email'        => array('type' => 'text', 'size' => $i_size), -        'organization' => array('type' => 'text', 'size' => $i_size), -        'reply-to'     => array('type' => 'text', 'size' => $i_size), -        'bcc'          => array('type' => 'text', 'size' => $i_size), -        'standard'       => array('type' => 'checkbox', 'label' => $RCMAIL->gettext('setdefault')), -      )), -    'signature' => array( -      'name' => $RCMAIL->gettext('signature'), -      'content' => array( -        'signature'      => array('type' => 'textarea', 'size' => $t_cols, 'rows' => $t_rows, -            'spellcheck' => true), -        'html_signature' => array('type' => 'checkbox', 'label' => $RCMAIL->gettext('htmlsignature'), -            'onclick' => 'return rcmail_toggle_editor(this, \'rcmfd_signature\');'), -    )) -  ); +function rcube_identity_form($attrib) +{ +    global $IDENTITY_RECORD, $RCMAIL, $OUTPUT; -  // Enable TinyMCE editor -  if ($IDENTITY_RECORD['html_signature']) { -    $form['signature']['content']['signature']['class']      = 'mce_editor'; -    $form['signature']['content']['signature']['is_escaped'] = true; +    // Add HTML editor script(s) +    $RCMAIL->html_editor('identity'); -    // Correctly handle HTML entities in HTML editor (#1488483) -    $IDENTITY_RECORD['signature'] = htmlspecialchars($IDENTITY_RECORD['signature'], ENT_NOQUOTES, RCUBE_CHARSET); -  } +    // add some labels to client +    $OUTPUT->add_label('noemailwarning', 'nonamewarning', 'converting', 'editorwarning'); -  // disable some field according to access level -  if (IDENTITIES_LEVEL == 1 || IDENTITIES_LEVEL == 3) { -    $form['addressing']['content']['email']['disabled'] = true; -    $form['addressing']['content']['email']['class'] = 'disabled'; -  } +    $i_size = !empty($attrib['size']) ? $attrib['size'] : 40; +    $t_rows = !empty($attrib['textarearows']) ? $attrib['textarearows'] : 6; +    $t_cols = !empty($attrib['textareacols']) ? $attrib['textareacols'] : 40; -  if (IDENTITIES_LEVEL == 4) { -    foreach($form['addressing']['content'] as $formfield => $value){ -      $form['addressing']['content'][$formfield]['disabled'] = true; -      $form['addressing']['content'][$formfield]['class'] = 'disabled'; -    } -  } +    // list of available cols +    $form = array( +        'addressing' => array( +            'name'    => $RCMAIL->gettext('settings'), +            'content' => array( +                'name'         => array('type' => 'text', 'size' => $i_size), +                'email'        => array('type' => 'text', 'size' => $i_size), +                'organization' => array('type' => 'text', 'size' => $i_size), +                'reply-to'     => array('type' => 'text', 'size' => $i_size), +                'bcc'          => array('type' => 'text', 'size' => $i_size), +                'standard'     => array('type' => 'checkbox', 'label' => $RCMAIL->gettext('setdefault')), +        )), +        'signature' => array( +            'name'    => $RCMAIL->gettext('signature'), +            'content' => array( +                'signature'      => array('type' => 'textarea', 'size' => $t_cols, 'rows' => $t_rows, +                    'spellcheck' => true), +                'html_signature' => array('type' => 'checkbox', +                    'label'   => $RCMAIL->gettext('htmlsignature'), +                    'onclick' => 'return rcmail_toggle_editor(this, \'rcmfd_signature\');'), +        )) +    ); -  $IDENTITY_RECORD['email'] = rcube_utils::idn_to_utf8($IDENTITY_RECORD['email']); +    // Enable TinyMCE editor +    if ($IDENTITY_RECORD['html_signature']) { +        $form['signature']['content']['signature']['class']      = 'mce_editor'; +        $form['signature']['content']['signature']['is_escaped'] = true; -  // Allow plugins to modify identity form content -  $plugin = $RCMAIL->plugins->exec_hook('identity_form', array( -    'form' => $form, 'record' => $IDENTITY_RECORD)); +        // Correctly handle HTML entities in HTML editor (#1488483) +        $IDENTITY_RECORD['signature'] = htmlspecialchars($IDENTITY_RECORD['signature'], ENT_NOQUOTES, RCUBE_CHARSET); +    } -  $form = $plugin['form']; -  $IDENTITY_RECORD = $plugin['record']; +    // disable some field according to access level +    if (IDENTITIES_LEVEL == 1 || IDENTITIES_LEVEL == 3) { +        $form['addressing']['content']['email']['disabled'] = true; +        $form['addressing']['content']['email']['class']    = 'disabled'; +    } -  // Set form tags and hidden fields -  list($form_start, $form_end) = get_form_tags($attrib, 'save-identity', -    intval($IDENTITY_RECORD['identity_id']), -    array('name' => '_iid', 'value' => $IDENTITY_RECORD['identity_id'])); +    if (IDENTITIES_LEVEL == 4) { +        foreach($form['addressing']['content'] as $formfield => $value){ +            $form['addressing']['content'][$formfield]['disabled'] = true; +            $form['addressing']['content'][$formfield]['class']    = 'disabled'; +        } +    } -  unset($plugin); -  unset($attrib['form'], $attrib['id']); +    $IDENTITY_RECORD['email'] = rcube_utils::idn_to_utf8($IDENTITY_RECORD['email']); -  // return the complete edit form as table -  $out = "$form_start\n"; +    // Allow plugins to modify identity form content +    $plugin = $RCMAIL->plugins->exec_hook('identity_form', array( +        'form' => $form, 'record' => $IDENTITY_RECORD)); -  foreach ($form as $fieldset) { -    if (empty($fieldset['content'])) -      continue; +    $form = $plugin['form']; +    $IDENTITY_RECORD = $plugin['record']; -    $content = ''; -    if (is_array($fieldset['content'])) { -      $table = new html_table(array('cols' => 2)); -      foreach ($fieldset['content'] as $col => $colprop) { -        $colprop['id'] = 'rcmfd_'.$col; +    // Set form tags and hidden fields +    list($form_start, $form_end) = get_form_tags($attrib, 'save-identity', +        intval($IDENTITY_RECORD['identity_id']), +        array('name' => '_iid', 'value' => $IDENTITY_RECORD['identity_id'])); -        $label = !empty($colprop['label']) ? $colprop['label'] : -            $RCMAIL->gettext(str_replace('-', '', $col)); +    unset($plugin); +    unset($attrib['form'], $attrib['id']); -        $value = !empty($colprop['value']) ? $colprop['value'] : -            rcube_output::get_edit_field($col, $IDENTITY_RECORD[$col], $colprop, $colprop['type']); +    // return the complete edit form as table +    $out = "$form_start\n"; -        $table->add('title', html::label($colprop['id'], rcube::Q($label))); -        $table->add(null, $value); -      } -      $content = $table->show($attrib); -    } -    else { -      $content = $fieldset['content']; -    } +    foreach ($form as $fieldset) { +        if (empty($fieldset['content'])) { +            continue; +        } -    $out .= html::tag('fieldset', null, html::tag('legend', null, rcube::Q($fieldset['name'])) . $content) ."\n"; -  } +        $content = ''; +        if (is_array($fieldset['content'])) { +            $table = new html_table(array('cols' => 2)); -  $out .= $form_end; +            foreach ($fieldset['content'] as $col => $colprop) { +                $colprop['id'] = 'rcmfd_'.$col; -  return $out; -} +                $label = !empty($colprop['label']) ? $colprop['label'] : +                    $RCMAIL->gettext(str_replace('-', '', $col)); -$OUTPUT->include_script('list.js'); -$OUTPUT->add_handler('identityform', 'rcube_identity_form'); -$OUTPUT->set_env('identities_level', IDENTITIES_LEVEL); -$OUTPUT->add_label('deleteidentityconfirm'); +                $value = !empty($colprop['value']) ? $colprop['value'] : +                    rcube_output::get_edit_field($col, $IDENTITY_RECORD[$col], $colprop, $colprop['type']); -$OUTPUT->set_pagetitle($RCMAIL->gettext(($RCMAIL->action=='add-identity' ? 'newidentity' : 'edititem'))); +                $table->add('title', html::label($colprop['id'], rcube::Q($label))); +                $table->add(null, $value); +            } -if ($RCMAIL->action=='add-identity' && $OUTPUT->template_exists('identityadd')) -  $OUTPUT->send('identityadd'); +            $content = $table->show($attrib); +        } +        else { +            $content = $fieldset['content']; +        } -$OUTPUT->send('identityedit'); +        $content = html::tag('legend', null, rcube::Q($fieldset['name'])) . $content; +        $out .= html::tag('fieldset', null, $content) . "\n"; +    } +    $out .= $form_end; +    return $out; +} diff --git a/program/steps/settings/edit_prefs.inc b/program/steps/settings/edit_prefs.inc index 93e27aedc..05f4db6a6 100644 --- a/program/steps/settings/edit_prefs.inc +++ b/program/steps/settings/edit_prefs.inc @@ -5,7 +5,7 @@   | program/steps/settings/edit_prefs.inc                                 |   |                                                                       |   | This file is part of the Roundcube Webmail client                     | - | Copyright (C) 2005-2007, The Roundcube Dev Team                       | + | Copyright (C) 2005-2013, The Roundcube Dev Team                       |   |                                                                       |   | Licensed under the GNU General Public License version 3 or            |   | any later version with exceptions for skins & plugins.                | @@ -19,65 +19,65 @@   +-----------------------------------------------------------------------+  */ -if (!$OUTPUT->ajax_call) -  $OUTPUT->set_pagetitle($RCMAIL->gettext('preferences')); +if (!$OUTPUT->ajax_call) { +    $OUTPUT->set_pagetitle($RCMAIL->gettext('preferences')); +} -$CURR_SECTION = rcube_utils::get_input_value('_section', rcube_utils::INPUT_GPC); +$CURR_SECTION    = rcube_utils::get_input_value('_section', rcube_utils::INPUT_GPC);  list($SECTIONS,) = rcmail_user_prefs($CURR_SECTION); +// register UI objects +$OUTPUT->add_handlers(array( +    'userprefs'   => 'rcmail_user_prefs_form', +    'sectionname' => 'rcmail_prefs_section_name', +)); + +$OUTPUT->send('settingsedit'); + + +  function rcmail_user_prefs_form($attrib)  { -  global $RCMAIL, $CURR_SECTION, $SECTIONS; +    global $RCMAIL, $CURR_SECTION, $SECTIONS; -  // add some labels to client -  $RCMAIL->output->add_label('nopagesizewarning'); +    // add some labels to client +    $RCMAIL->output->add_label('nopagesizewarning'); -  unset($attrib['form']); +    unset($attrib['form']); -  list($form_start, $form_end) = get_form_tags($attrib, 'save-prefs', null, -    array('name' => '_section', 'value' => $CURR_SECTION)); +    list($form_start, $form_end) = get_form_tags($attrib, 'save-prefs', null, +        array('name' => '_section', 'value' => $CURR_SECTION)); -  $out = $form_start; +    $out = $form_start; -  foreach ($SECTIONS[$CURR_SECTION]['blocks'] as $class => $block) { -    if (!empty($block['options'])) { -      $table = new html_table(array('cols' => 2)); +    foreach ($SECTIONS[$CURR_SECTION]['blocks'] as $class => $block) { +        if (!empty($block['options'])) { +            $table = new html_table(array('cols' => 2)); -      foreach ($block['options'] as $option) { -        if (isset($option['title'])) { -          $table->add('title', $option['title']); -          $table->add(null, $option['content']); +            foreach ($block['options'] as $option) { +                if (isset($option['title'])) { +                    $table->add('title', $option['title']); +                    $table->add(null, $option['content']); +                } +                else { +                    $table->add(array('colspan' => 2), $option['content']); +                } +            } + +            $out .= html::tag('fieldset', $class, html::tag('legend', null, $block['name']) . $table->show($attrib));          } -        else { -          $table->add(array('colspan' => 2), $option['content']); +        else if (!empty($block['content'])) { +            $out .= html::tag('fieldset', null, html::tag('legend', null, $block['name']) . $block['content']);          } -      } - -      $out .= html::tag('fieldset', $class, html::tag('legend', null, $block['name']) . $table->show($attrib));      } -    else if (!empty($block['content'])) { -      $out .= html::tag('fieldset', null, html::tag('legend', null, $block['name']) . $block['content']); -    } -  } -  return $out . $form_end; +    return $out . $form_end;  }  function rcmail_prefs_section_name()  { -  global $SECTIONS, $CURR_SECTION; -   -  return $SECTIONS[$CURR_SECTION]['section']; -} - - -// register UI objects -$OUTPUT->add_handlers(array( -  'userprefs' => 'rcmail_user_prefs_form', -  'sectionname' => 'rcmail_prefs_section_name', -)); - -$OUTPUT->send('settingsedit'); - +    global $SECTIONS, $CURR_SECTION; +    return $SECTIONS[$CURR_SECTION]['section']; +} diff --git a/program/steps/settings/edit_response.inc b/program/steps/settings/edit_response.inc index 371d7ecc4..760f28290 100644 --- a/program/steps/settings/edit_response.inc +++ b/program/steps/settings/edit_response.inc @@ -70,6 +70,12 @@ if ($RCMAIL->action == 'save-response' && isset($_POST['_name']) && !$RESPONSE_R      }  } +$OUTPUT->set_env('readonly', !empty($RESPONSE_RECORD['static'])); +$OUTPUT->add_handler('responseform', 'rcube_response_form'); +$OUTPUT->set_pagetitle($RCMAIL->gettext($RCMAIL->action == 'add-response' ? 'savenewresponse' : 'editresponse')); + +$OUTPUT->send('responseedit'); +  function rcube_response_form($attrib)  { @@ -88,20 +94,15 @@ function rcube_response_form($attrib)      $label = $RCMAIL->gettext('responsename');      $table->add('title', html::label('ffname', rcube::Q($RCMAIL->gettext('responsename')))); -    $table->add(null, rcube_output::get_edit_field('name', $RESPONSE_RECORD['name'], array('id' => 'ffname', 'size' => $attrib['size'], 'disabled' => $disabled), 'text')); +    $table->add(null, rcube_output::get_edit_field('name', $RESPONSE_RECORD['name'], +        array('id' => 'ffname', 'size' => $attrib['size'], 'disabled' => $disabled), 'text'));      $table->add('title', html::label('fftext', rcube::Q($RCMAIL->gettext('responsetext')))); -    $table->add(null, rcube_output::get_edit_field('text', $RESPONSE_RECORD['text'], array('id' => 'fftext', 'size' => $attrib['textareacols'], 'rows' => $attrib['textarearows'], 'disabled' => $disabled), 'textarea')); +    $table->add(null, rcube_output::get_edit_field('text', $RESPONSE_RECORD['text'], +        array('id' => 'fftext', 'size' => $attrib['textareacols'], 'rows' => $attrib['textarearows'], 'disabled' => $disabled), 'textarea'));      $out .= $table->show($attrib);      $out .= $form_end;      return $out;  } - -$OUTPUT->set_env('readonly', !empty($RESPONSE_RECORD['static'])); -$OUTPUT->add_handler('responseform', 'rcube_response_form'); -$OUTPUT->set_pagetitle($RCMAIL->gettext($RCMAIL->action == 'add-response' ? 'savenewresponse' : 'editresponse')); - -$OUTPUT->send('responseedit'); - diff --git a/program/steps/settings/folders.inc b/program/steps/settings/folders.inc index 1c249b133..b09ea03ce 100644 --- a/program/steps/settings/folders.inc +++ b/program/steps/settings/folders.inc @@ -378,8 +378,9 @@ function rcmail_folder_frame($attrib)  {      global $OUTPUT; -    if (!$attrib['id']) +    if (!$attrib['id']) {          $attrib['id'] = 'rcmfolderframe'; +    }      return $OUTPUT->frame($attrib, true);  } @@ -428,4 +429,3 @@ function rcmail_rename_folder($oldname, $newname)      return false;  } - diff --git a/program/steps/settings/func.inc b/program/steps/settings/func.inc index c504e6c40..418f8b043 100644 --- a/program/steps/settings/func.inc +++ b/program/steps/settings/func.inc @@ -5,7 +5,7 @@   | program/steps/settings/func.inc                                       |   |                                                                       |   | This file is part of the Roundcube Webmail client                     | - | Copyright (C) 2005-2012, The Roundcube Dev Team                       | + | Copyright (C) 2005-2013, The Roundcube Dev Team                       |   |                                                                       |   | Licensed under the GNU General Public License version 3 or            |   | any later version with exceptions for skins & plugins.                | @@ -23,6 +23,30 @@ if (!$OUTPUT->ajax_call) {      $OUTPUT->set_pagetitle($RCMAIL->gettext('preferences'));  } +// register UI objects +$OUTPUT->add_handlers(array( +    'settingstabs'   => 'rcmail_settings_tabs', +    'prefsframe'     => 'rcmail_preferences_frame', +    'sectionslist'   => 'rcmail_sections_list', +    'identitieslist' => 'rcmail_identities_list', +)); + +// register action aliases +$RCMAIL->register_action_map(array( +    'folders'       => 'folders.inc', +    'rename-folder' => 'folders.inc', +    'delete-folder' => 'folders.inc', +    'subscribe'     => 'folders.inc', +    'unsubscribe'   => 'folders.inc', +    'purge'         => 'folders.inc', +    'folder-size'   => 'folders.inc', +    'add-identity'  => 'edit_identity.inc', +    'add-response'  => 'edit_response.inc', +    'save-response' => 'edit_response.inc', +    'delete-response' => 'responses.inc', +)); + +  // similar function as /steps/settings/identities.inc::rcmail_identity_frame()  function rcmail_preferences_frame($attrib)  { @@ -1273,12 +1297,14 @@ function rcmail_update_folder_row($name, $oldname=null, $subscribe=false, $class      $display_name = str_repeat('    ', $level)          . rcube::Q($protected ? $RCMAIL->localize_foldername($name) : rcube_charset::convert($foldersplit[$level], 'UTF7-IMAP')); -    if ($oldname === null) +    if ($oldname === null) {          $OUTPUT->command('add_folder_row', $name_utf8, $display_name, $protected, $subscribe,              false, $class_name); -    else +    } +    else {          $OUTPUT->command('replace_folder_row', rcube_charset::convert($oldname, 'UTF7-IMAP'),              $name_utf8, $display_name, $protected, $class_name); +    }  }  /** @@ -1295,18 +1321,18 @@ function rcmail_settings_tabs($attrib)          array('command' => 'preferences', 'type' => 'link', 'label' => 'preferences', 'title' => 'editpreferences'),          array('command' => 'folders',     'type' => 'link', 'label' => 'folders',     'title' => 'managefolders'),          array('command' => 'identities',  'type' => 'link', 'label' => 'identities',  'title' => 'manageidentities'), -        array('command' => 'responses',   'type' => 'link', 'label' => 'responses',  'title' => 'editresponses'), +        array('command' => 'responses',   'type' => 'link', 'label' => 'responses',   'title' => 'editresponses'),      );      // get all identites from DB and define list of cols to be displayed      $plugin = $RCMAIL->plugins->exec_hook('settings_actions', array(          'actions' => $default_actions, -        'attrib' => $attrib, +        'attrib'  => $attrib,      )); -    $attrib = $plugin['attrib']; +    $attrib  = $plugin['attrib'];      $tagname = $attrib['tagname']; -    $tabs = array(); +    $tabs    = array();      foreach ($plugin['actions'] as $k => $action) {          if (!$action['command'] && !$action['href'] && $action['action']) { @@ -1314,13 +1340,15 @@ function rcmail_settings_tabs($attrib)          }          $button = $OUTPUT->button($action); -        $attr = $attrib; +        $attr   = $attrib;          $cmd = $action['action'] ? $action['action'] : $action['command']; -        $id = $action['id'] ? $action['id'] : $cmd; +        $id  = $action['id'] ? $action['id'] : $cmd; +          if (!empty($id)) {              $attr['id'] = preg_replace('/[^a-z0-9]/i', '', $attrib['idprefix'] . $id);          } +          $classnames = array($attrib['class']);          if (!empty($action['class'])) {              $classnames[] = $action['class']; @@ -1331,33 +1359,10 @@ function rcmail_settings_tabs($attrib)          if ($RCMAIL->action == $cmd) {              $classnames[] = $attrib['selclass'];          } +          $attr['class'] = join(' ', $classnames);          $tabs[] = html::tag($tagname, $attr, $button, html::$common_attrib);      }      return join('', $tabs);  } - - -// register UI objects -$OUTPUT->add_handlers(array( -    'settingstabs' => 'rcmail_settings_tabs', -    'prefsframe' => 'rcmail_preferences_frame', -    'sectionslist' => 'rcmail_sections_list', -    'identitieslist' => 'rcmail_identities_list', -)); - -// register action aliases -$RCMAIL->register_action_map(array( -    'folders'       => 'folders.inc', -    'rename-folder' => 'folders.inc', -    'delete-folder' => 'folders.inc', -    'subscribe'     => 'folders.inc', -    'unsubscribe'   => 'folders.inc', -    'purge'         => 'folders.inc', -    'folder-size'   => 'folders.inc', -    'add-identity'  => 'edit_identity.inc', -    'add-response'  => 'edit_response.inc', -    'save-response' => 'edit_response.inc', -    'delete-response' => 'responses.inc', -)); diff --git a/program/steps/settings/identities.inc b/program/steps/settings/identities.inc index 7072acf72..e19c16c79 100644 --- a/program/steps/settings/identities.inc +++ b/program/steps/settings/identities.inc @@ -5,7 +5,7 @@   | program/steps/settings/identities.inc                                 |   |                                                                       |   | This file is part of the Roundcube Webmail client                     | - | Copyright (C) 2005-2007, The Roundcube Dev Team                       | + | Copyright (C) 2005-2013, The Roundcube Dev Team                       |   |                                                                       |   | Licensed under the GNU General Public License version 3 or            |   | any later version with exceptions for skins & plugins.                | @@ -24,20 +24,21 @@ define('IDENTITIES_LEVEL', intval($RCMAIL->config->get('identities_level', 0)));  $OUTPUT->set_pagetitle($RCMAIL->gettext('identities'));  $OUTPUT->include_script('list.js'); - -// similar function as /steps/addressbook/func.inc::rcmail_contact_frame() -function rcmail_identity_frame($attrib) -  { -  global $OUTPUT; - -  if (!$attrib['id']) -    $attrib['id'] = 'rcmIdentityFrame'; - -  return $OUTPUT->frame($attrib, true); -  } -  $OUTPUT->add_handler('identityframe', 'rcmail_identity_frame');  $OUTPUT->set_env('identities_level', IDENTITIES_LEVEL);  $OUTPUT->add_label('deleteidentityconfirm');  $OUTPUT->send('identities'); + + +// similar function as /steps/addressbook/func.inc::rcmail_contact_frame() +function rcmail_identity_frame($attrib) +{ +    global $OUTPUT; + +    if (!$attrib['id']) { +        $attrib['id'] = 'rcmIdentityFrame'; +    } + +    return $OUTPUT->frame($attrib, true); +} diff --git a/program/steps/settings/responses.inc b/program/steps/settings/responses.inc index 45d1405f7..fcc9c9a10 100644 --- a/program/steps/settings/responses.inc +++ b/program/steps/settings/responses.inc @@ -51,7 +51,6 @@ if (!empty($_POST['_insert'])) {      $RCMAIL->output->send();  } -  if ($RCMAIL->action == 'delete-response') {      if ($key = rcube_utils::get_input_value('_key', rcube_utils::INPUT_GPC)) {          $responses = $RCMAIL->get_compose_responses(false, true); @@ -80,6 +79,14 @@ if ($RCMAIL->action == 'delete-response') {  $OUTPUT->set_pagetitle($RCMAIL->gettext('responses'));  $OUTPUT->include_script('list.js'); +$OUTPUT->add_handlers(array( +    'responseframe' => 'rcmail_response_frame', +    'responseslist' => 'rcmail_responses_list', +)); +$OUTPUT->add_label('deleteresponseconfirm'); + +$OUTPUT->send('responses'); +  /**   * @@ -105,7 +112,6 @@ function rcmail_responses_list($attrib)      return $out;  } -  // similar function as /steps/addressbook/func.inc::rcmail_contact_frame()  function rcmail_response_frame($attrib)  { @@ -116,13 +122,6 @@ function rcmail_response_frame($attrib)      }      $OUTPUT->set_env('contentframe', $attrib['id']); +      return $OUTPUT->frame($attrib, true);  } - -$OUTPUT->add_handlers(array( -    'responseframe' => 'rcmail_response_frame', -    'responseslist' => 'rcmail_responses_list', -)); -$OUTPUT->add_label('deleteresponseconfirm'); - -$OUTPUT->send('responses'); diff --git a/program/steps/settings/save_folder.inc b/program/steps/settings/save_folder.inc index f876ff8e0..f720735e0 100644 --- a/program/steps/settings/save_folder.inc +++ b/program/steps/settings/save_folder.inc @@ -1,6 +1,6 @@  <?php -/** +/*   +-----------------------------------------------------------------------+   | program/steps/settings/save_folder.inc                                |   |                                                                       | @@ -24,7 +24,6 @@  // init IMAP connection  $STORAGE = $RCMAIL->get_storage(); -  $name = trim(rcube_utils::get_input_value('_name', rcube_utils::INPUT_POST, true));  $old  = rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_POST, true);  $path = rcube_utils::get_input_value('_parent', rcube_utils::INPUT_POST, true); @@ -98,7 +97,6 @@ else {  // create a new mailbox  if (!$error && !strlen($old)) { -      $folder['subscribe'] = true;      $plugin = $RCMAIL->plugins->exec_hook('folder_create', array('record' => $folder)); @@ -136,7 +134,6 @@ if (!$error && !strlen($old)) {          $OUTPUT->show_message($plugin['message'] ? $plugin['message'] : 'errorsaving', 'error', null, false);      }  } -  // update a mailbox  else if (!$error) {      $plugin = $RCMAIL->plugins->exec_hook('folder_update', array('record' => $folder)); diff --git a/program/steps/settings/save_identity.inc b/program/steps/settings/save_identity.inc index 5bd04003d..1584c5f00 100644 --- a/program/steps/settings/save_identity.inc +++ b/program/steps/settings/save_identity.inc @@ -5,7 +5,7 @@   | program/steps/settings/save_identity.inc                              |   |                                                                       |   | This file is part of the Roundcube Webmail client                     | - | Copyright (C) 2005-2009, The Roundcube Dev Team                       | + | Copyright (C) 2005-2013, The Roundcube Dev Team                       |   |                                                                       |   | Licensed under the GNU General Public License version 3 or            |   | any later version with exceptions for skins & plugins.                | @@ -21,161 +21,173 @@  define('IDENTITIES_LEVEL', intval($RCMAIL->config->get('identities_level', 0))); -$a_save_cols = array('name', 'email', 'organization', 'reply-to', 'bcc', 'standard', 'signature', 'html_signature'); +$a_save_cols    = array('name', 'email', 'organization', 'reply-to', 'bcc', 'standard', 'signature', 'html_signature');  $a_boolean_cols = array('standard', 'html_signature');  $updated = $default_id = false;  // check input  if (IDENTITIES_LEVEL != 4 && (empty($_POST['_name']) || (empty($_POST['_email']) && IDENTITIES_LEVEL != 1 && IDENTITIES_LEVEL != 3))) { -  $OUTPUT->show_message('formincomplete', 'warning'); -  $RCMAIL->overwrite_action('edit-identity'); -  return; +    $OUTPUT->show_message('formincomplete', 'warning'); +    $RCMAIL->overwrite_action('edit-identity'); +    return;  }  $save_data = array();  foreach ($a_save_cols as $col) { -  $fname = '_'.$col; -  if (isset($_POST[$fname])) -    $save_data[$col] = rcube_utils::get_input_value($fname, rcube_utils::INPUT_POST, true); +    $fname = '_'.$col; +    if (isset($_POST[$fname])) { +        $save_data[$col] = rcube_utils::get_input_value($fname, rcube_utils::INPUT_POST, true); +    }  }  // set "off" values for checkboxes that were not checked, and therefore  // not included in the POST body.  foreach ($a_boolean_cols as $col) { -  $fname = '_' . $col; -  if (!isset($_POST[$fname])) -    $save_data[$col] = 0; +    $fname = '_' . $col; +    if (!isset($_POST[$fname])) { +        $save_data[$col] = 0; +    }  }  // unset email address if user has no rights to change it  if (IDENTITIES_LEVEL == 1 || IDENTITIES_LEVEL == 3) { -  unset($save_data['email']); +    unset($save_data['email']);  }  // unset all fields except signature  else if (IDENTITIES_LEVEL == 4) { -  foreach ($save_data as $idx => $value) { -    if ($idx != 'signature' && $idx != 'html_signature') { -      unset($save_data[$idx]); +    foreach ($save_data as $idx => $value) { +        if ($idx != 'signature' && $idx != 'html_signature') { +            unset($save_data[$idx]); +        }      } -  }  }  // Validate e-mail addresses  $email_checks = array(rcube_utils::idn_to_ascii($save_data['email']));  foreach (array('reply-to', 'bcc') as $item) { -  foreach (rcube_mime::decode_address_list($save_data[$item], null, false) as $rcpt) -    $email_checks[] = rcube_utils::idn_to_ascii($rcpt['mailto']); +    foreach (rcube_mime::decode_address_list($save_data[$item], null, false) as $rcpt) { +        $email_checks[] = rcube_utils::idn_to_ascii($rcpt['mailto']); +    }  }  foreach ($email_checks as $email) { -  if ($email && !rcube_utils::check_email($email)) { -    // show error message -    $OUTPUT->show_message('emailformaterror', 'error', array('email' => rcube_utils::idn_to_utf8($email)), false); -    $RCMAIL->overwrite_action('edit-identity'); -    return; -  } +    if ($email && !rcube_utils::check_email($email)) { +        // show error message +        $OUTPUT->show_message('emailformaterror', 'error', array('email' => rcube_utils::idn_to_utf8($email)), false); +        $RCMAIL->overwrite_action('edit-identity'); +        return; +    }  }  // XSS protection in HTML signature (#1489251)  if (!empty($save_data['signature']) && !empty($save_data['html_signature'])) { -  $save_data['signature'] = rcmail_wash_html($save_data['signature']); +    $save_data['signature'] = rcmail_wash_html($save_data['signature']); -  // clear POST data of signature, we want to use safe content -  // when the form is displayed again -  unset($_POST['_signature']); +    // clear POST data of signature, we want to use safe content +    // when the form is displayed again +    unset($_POST['_signature']);  }  // update an existing contact  if ($_POST['_iid']) { -  $iid = rcube_utils::get_input_value('_iid', rcube_utils::INPUT_POST); +    $iid = rcube_utils::get_input_value('_iid', rcube_utils::INPUT_POST); + +    if (in_array(IDENTITIES_LEVEL, array(1,3,4))) { +        // merge with old identity data, fixes #1488834 +        $identity  = $RCMAIL->user->get_identity($iid); +        $save_data = array_merge($identity, $save_data); + +        unset($save_data['changed'], $save_data['del'], $save_data['user_id'], $save_data['identity_id']); +    } -  if (in_array(IDENTITIES_LEVEL, array(1,3,4))) { -    // merge with old identity data, fixes #1488834 -    $identity  = $RCMAIL->user->get_identity($iid); -    $save_data = array_merge($identity, $save_data); -    unset($save_data['changed'], $save_data['del'], $save_data['user_id'], $save_data['identity_id']); -  } +    $plugin = $RCMAIL->plugins->exec_hook('identity_update', array('id' => $iid, 'record' => $save_data)); +    $save_data = $plugin['record']; -  $plugin = $RCMAIL->plugins->exec_hook('identity_update', array('id' => $iid, 'record' => $save_data)); -  $save_data = $plugin['record']; +    if ($save_data['email']) { +        $save_data['email'] = rcube_utils::idn_to_ascii($save_data['email']); +    } -  if ($save_data['email']) -    $save_data['email'] = rcube_utils::idn_to_ascii($save_data['email']); -  if (!$plugin['abort']) -    $updated = $RCMAIL->user->update_identity($iid, $save_data); -  else -    $updated = $plugin['result']; +    if (!$plugin['abort']) +        $updated = $RCMAIL->user->update_identity($iid, $save_data); +    else +        $updated = $plugin['result']; -  if ($updated) { -    $OUTPUT->show_message('successfullysaved', 'confirmation'); +    if ($updated) { +        $OUTPUT->show_message('successfullysaved', 'confirmation'); -    if (!empty($save_data['standard'])) -      $default_id = $iid; +        if (!empty($save_data['standard'])) { +            $default_id = $iid; +        } -    if ($_POST['_framed']) { -      // update the changed col in list -      $OUTPUT->command('parent.update_identity_row', $iid, rcube::Q(trim($save_data['name'] . ' <' . rcube_utils::idn_to_utf8($save_data['email']) .'>'))); +        if ($_POST['_framed']) { +            // update the changed col in list +            $name = $save_data['name'] . ' <' . rcube_utils::idn_to_utf8($save_data['email']) .'>'; +            $OUTPUT->command('parent.update_identity_row', $iid, rcube::Q(trim($name))); +        } +    } +    else { +        // show error message +        $OUTPUT->show_message($plugin['message'] ? $plugin['message'] : 'errorsaving', 'error', null, false); +        $RCMAIL->overwrite_action('edit-identity'); +        return;      } -  } -  else { -    // show error message -    $OUTPUT->show_message($plugin['message'] ? $plugin['message'] : 'errorsaving', 'error', null, false); -    $RCMAIL->overwrite_action('edit-identity'); -    return; -  }  } -  // insert a new identity record  else if (IDENTITIES_LEVEL < 2) { -  if (IDENTITIES_LEVEL == 1) { -    $save_data['email'] = $RCMAIL->get_user_email(); -  } +    if (IDENTITIES_LEVEL == 1) { +        $save_data['email'] = $RCMAIL->get_user_email(); +    } -  $plugin = $RCMAIL->plugins->exec_hook('identity_create', array('record' => $save_data)); -  $save_data = $plugin['record']; +    $plugin = $RCMAIL->plugins->exec_hook('identity_create', array('record' => $save_data)); +    $save_data = $plugin['record']; -  if ($save_data['email']) -    $save_data['email'] = rcube_utils::idn_to_ascii($save_data['email']); +    if ($save_data['email']) { +        $save_data['email'] = rcube_utils::idn_to_ascii($save_data['email']); +    } -  if (!$plugin['abort']) -    $insert_id = $save_data['email'] ? $RCMAIL->user->insert_identity($save_data) : null; -  else -    $insert_id = $plugin['result']; +    if (!$plugin['abort']) +        $insert_id = $save_data['email'] ? $RCMAIL->user->insert_identity($save_data) : null; +    else +        $insert_id = $plugin['result']; -  if ($insert_id) { -    $OUTPUT->show_message('successfullysaved', 'confirmation', null, false); +    if ($insert_id) { +        $OUTPUT->show_message('successfullysaved', 'confirmation', null, false); -    $_GET['_iid'] = $insert_id; +        $_GET['_iid'] = $insert_id; -    if (!empty($save_data['standard'])) -      $default_id = $insert_id; +        if (!empty($save_data['standard'])) { +            $default_id = $insert_id; +        } -    if ($_POST['_framed']) { -      // add a new row to the list -      $OUTPUT->command('parent.update_identity_row', $insert_id, rcube::Q(trim($save_data['name'] . ' <' . rcube_utils::idn_to_utf8($save_data['email']) .'>')), true); +        if ($_POST['_framed']) { +            // add a new row to the list +            $name = $save_data['name'] . ' <' . rcube_utils::idn_to_utf8($save_data['email']) .'>'; +            $OUTPUT->command('parent.update_identity_row', $insert_id, rcube::Q(trim($name)), true); +        } +    } +    else { +        // show error message +        $OUTPUT->show_message($plugin['message'] ? $plugin['message'] : 'errorsaving', 'error', null, false); +        $RCMAIL->overwrite_action('edit-identity'); +        return;      } -  } -  else { -    // show error message -    $OUTPUT->show_message($plugin['message'] ? $plugin['message'] : 'errorsaving', 'error', null, false); -    $RCMAIL->overwrite_action('edit-identity'); -    return; -  }  } -else -  $OUTPUT->show_message('opnotpermitted', 'error'); - +else { +    $OUTPUT->show_message('opnotpermitted', 'error'); +}  // mark all other identities as 'not-default' -if ($default_id) -  $RCMAIL->user->set_default($default_id); +if ($default_id) { +    $RCMAIL->user->set_default($default_id); +}  // go to next step  if (!empty($_REQUEST['_framed'])) { -  $RCMAIL->overwrite_action('edit-identity'); +    $RCMAIL->overwrite_action('edit-identity'); +} +else { +    $RCMAIL->overwrite_action('identities');  } -else -  $RCMAIL->overwrite_action('identities');  /** @@ -190,11 +202,11 @@ function rcmail_wash_html($html)      // clean HTML with washhtml by Frederic Motte      $wash_opts = array( -        'show_washed' => false, -        'allow_remote' => 1, -        'charset' => RCUBE_CHARSET, +        'show_washed'   => false, +        'allow_remote'  => 1, +        'charset'       => RCUBE_CHARSET,          'html_elements' => array('body', 'link'), -        'html_attribs' => array('rel', 'type'), +        'html_attribs'  => array('rel', 'type'),      );      // initialize HTML washer @@ -211,5 +223,5 @@ function rcmail_wash_html($html)      // remove unwanted comments and tags (produced by washtml)      $html = preg_replace(array('/<!--[^>]+-->/', '/<\/?body>/'), '', $html); -  return $html; +    return $html;  } diff --git a/program/steps/settings/save_prefs.inc b/program/steps/settings/save_prefs.inc index 325c66ae8..f71eee39a 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-2009, The Roundcube Dev Team                       | + | Copyright (C) 2005-2013, The Roundcube Dev Team                       |   |                                                                       |   | Licensed under the GNU General Public License version 3 or            |   | any later version with exceptions for skins & plugins.                | @@ -20,190 +20,190 @@  */  $CURR_SECTION = rcube_utils::get_input_value('_section', rcube_utils::INPUT_POST); -  $a_user_prefs = array();  // set options for specified section -switch ($CURR_SECTION) -{ -  case 'general': +switch ($CURR_SECTION) { +case 'general':      $a_user_prefs = array( -      'language'     => isset($_POST['_language']) ? rcube_utils::get_input_value('_language', rcube_utils::INPUT_POST) : $CONFIG['language'], -      'timezone'     => isset($_POST['_timezone']) ? rcube_utils::get_input_value('_timezone', rcube_utils::INPUT_POST) : $CONFIG['timezone'], -      'date_format'  => isset($_POST['_date_format']) ? rcube_utils::get_input_value('_date_format', rcube_utils::INPUT_POST) : $CONFIG['date_format'], -      'time_format'  => isset($_POST['_time_format']) ? rcube_utils::get_input_value('_time_format', rcube_utils::INPUT_POST) : ($CONFIG['time_format'] ? $CONFIG['time_format'] : 'H:i'), -      'prettydate'   => isset($_POST['_pretty_date']) ? TRUE : FALSE, -      'refresh_interval' => isset($_POST['_refresh_interval']) ? intval($_POST['_refresh_interval'])*60 : $CONFIG['refresh_interval'], -      'standard_windows' => isset($_POST['_standard_windows']) ? TRUE : FALSE, -      'skin'         => isset($_POST['_skin']) ? rcube_utils::get_input_value('_skin', rcube_utils::INPUT_POST) : $CONFIG['skin'], +        'language'     => isset($_POST['_language']) ? rcube_utils::get_input_value('_language', rcube_utils::INPUT_POST) : $CONFIG['language'], +        'timezone'     => isset($_POST['_timezone']) ? rcube_utils::get_input_value('_timezone', rcube_utils::INPUT_POST) : $CONFIG['timezone'], +        'date_format'  => isset($_POST['_date_format']) ? rcube_utils::get_input_value('_date_format', rcube_utils::INPUT_POST) : $CONFIG['date_format'], +        'time_format'  => isset($_POST['_time_format']) ? rcube_utils::get_input_value('_time_format', rcube_utils::INPUT_POST) : ($CONFIG['time_format'] ? $CONFIG['time_format'] : 'H:i'), +        'prettydate'   => isset($_POST['_pretty_date']) ? true : false, +        'refresh_interval' => isset($_POST['_refresh_interval']) ? intval($_POST['_refresh_interval'])*60 : $CONFIG['refresh_interval'], +        'standard_windows' => isset($_POST['_standard_windows']) ? true : false, +        'skin'         => isset($_POST['_skin']) ? rcube_utils::get_input_value('_skin', rcube_utils::INPUT_POST) : $CONFIG['skin'],      );      // compose derived date/time format strings      if ((isset($_POST['_date_format']) || isset($_POST['_time_format'])) && $a_user_prefs['date_format'] && $a_user_prefs['time_format']) { -      $a_user_prefs['date_short'] = 'D ' . $a_user_prefs['time_format']; -      $a_user_prefs['date_long'] = $a_user_prefs['date_format'] . ' ' . $a_user_prefs['time_format']; +        $a_user_prefs['date_short'] = 'D ' . $a_user_prefs['time_format']; +        $a_user_prefs['date_long']  = $a_user_prefs['date_format'] . ' ' . $a_user_prefs['time_format'];      } -  break; +    break; -  case 'mailbox': +case 'mailbox':      $a_user_prefs = array( -      'preview_pane'         => isset($_POST['_preview_pane']) ? TRUE : FALSE, -      'preview_pane_mark_read' => isset($_POST['_preview_pane_mark_read']) ? intval($_POST['_preview_pane_mark_read']) : $CONFIG['preview_pane_mark_read'], -      'autoexpand_threads'   => isset($_POST['_autoexpand_threads']) ? intval($_POST['_autoexpand_threads']) : 0, -      'mdn_requests'         => isset($_POST['_mdn_requests']) ? intval($_POST['_mdn_requests']) : 0, -      'check_all_folders'    => isset($_POST['_check_all_folders']) ? TRUE : FALSE, -      'mail_pagesize'        => is_numeric($_POST['_mail_pagesize']) ? max(2, intval($_POST['_mail_pagesize'])) : $CONFIG['mail_pagesize'], +        'preview_pane'         => isset($_POST['_preview_pane']) ? true : false, +        'preview_pane_mark_read' => isset($_POST['_preview_pane_mark_read']) ? intval($_POST['_preview_pane_mark_read']) : $CONFIG['preview_pane_mark_read'], +        'autoexpand_threads'   => isset($_POST['_autoexpand_threads']) ? intval($_POST['_autoexpand_threads']) : 0, +        'mdn_requests'         => isset($_POST['_mdn_requests']) ? intval($_POST['_mdn_requests']) : 0, +        'check_all_folders'    => isset($_POST['_check_all_folders']) ? true : false, +        'mail_pagesize'        => is_numeric($_POST['_mail_pagesize']) ? max(2, intval($_POST['_mail_pagesize'])) : $CONFIG['mail_pagesize'],      ); -  break; +    break; -  case 'mailview': +case 'mailview':      $a_user_prefs = array( -      'message_extwin'  => intval($_POST['_message_extwin']), -      'message_show_email' => isset($_POST['_message_show_email']) ? TRUE : FALSE, -      'prefer_html'     => isset($_POST['_prefer_html']) ? TRUE : FALSE, -      'inline_images'   => isset($_POST['_inline_images']) ? TRUE : FALSE, -      'show_images'     => isset($_POST['_show_images']) ? intval($_POST['_show_images']) : 0, -      'display_next'    => isset($_POST['_display_next']) ? TRUE : FALSE, -      'default_charset' => rcube_utils::get_input_value('_default_charset', rcube_utils::INPUT_POST), +        'message_extwin'  => intval($_POST['_message_extwin']), +        'message_show_email' => isset($_POST['_message_show_email']) ? true : false, +        'prefer_html'     => isset($_POST['_prefer_html']) ? true : false, +        'inline_images'   => isset($_POST['_inline_images']) ? true : false, +        'show_images'     => isset($_POST['_show_images']) ? intval($_POST['_show_images']) : 0, +        'display_next'    => isset($_POST['_display_next']) ? true : false, +        'default_charset' => rcube_utils::get_input_value('_default_charset', rcube_utils::INPUT_POST),      ); -  break; +    break; -  case 'compose': +case 'compose':      $a_user_prefs = array( -      'compose_extwin'     => intval($_POST['_compose_extwin']), -      'htmleditor'         => intval($_POST['_htmleditor']), -      'draft_autosave'     => isset($_POST['_draft_autosave']) ? intval($_POST['_draft_autosave']) : 0, -      'mime_param_folding' => isset($_POST['_mime_param_folding']) ? intval($_POST['_mime_param_folding']) : 0, -      'force_7bit'         => isset($_POST['_force_7bit']) ? TRUE : FALSE, -      'mdn_default'        => isset($_POST['_mdn_default']) ? TRUE : FALSE, -      'dsn_default'        => isset($_POST['_dsn_default']) ? TRUE : FALSE, -      'reply_same_folder'  => isset($_POST['_reply_same_folder']) ? TRUE : FALSE, -      'spellcheck_before_send' => isset($_POST['_spellcheck_before_send']) ? TRUE : FALSE, -      'spellcheck_ignore_syms' => isset($_POST['_spellcheck_ignore_syms']) ? TRUE : FALSE, -      'spellcheck_ignore_nums' => isset($_POST['_spellcheck_ignore_nums']) ? TRUE : FALSE, -      'spellcheck_ignore_caps' => isset($_POST['_spellcheck_ignore_caps']) ? TRUE : FALSE, -      'show_sig'           => isset($_POST['_show_sig']) ? intval($_POST['_show_sig']) : 1, -      'reply_mode'         => isset($_POST['_reply_mode']) ? intval($_POST['_reply_mode']) : 0, -      'strip_existing_sig' => isset($_POST['_strip_existing_sig']), -      'default_font'       => rcube_utils::get_input_value('_default_font', rcube_utils::INPUT_POST), -      'default_font_size'  => rcube_utils::get_input_value('_default_font_size', rcube_utils::INPUT_POST), -      'reply_all_mode'     => intval($_POST['_reply_all_mode']), -      'forward_attachment' => !empty($_POST['_forward_attachment']), +        'compose_extwin'     => intval($_POST['_compose_extwin']), +        'htmleditor'         => intval($_POST['_htmleditor']), +        'draft_autosave'     => isset($_POST['_draft_autosave']) ? intval($_POST['_draft_autosave']) : 0, +        'mime_param_folding' => isset($_POST['_mime_param_folding']) ? intval($_POST['_mime_param_folding']) : 0, +        'force_7bit'         => isset($_POST['_force_7bit']) ? true : false, +        'mdn_default'        => isset($_POST['_mdn_default']) ? true : false, +        'dsn_default'        => isset($_POST['_dsn_default']) ? true : false, +        'reply_same_folder'  => isset($_POST['_reply_same_folder']) ? true : false, +        'spellcheck_before_send' => isset($_POST['_spellcheck_before_send']) ? true : false, +        'spellcheck_ignore_syms' => isset($_POST['_spellcheck_ignore_syms']) ? true : false, +        'spellcheck_ignore_nums' => isset($_POST['_spellcheck_ignore_nums']) ? true : false, +        'spellcheck_ignore_caps' => isset($_POST['_spellcheck_ignore_caps']) ? true : false, +        'show_sig'           => isset($_POST['_show_sig']) ? intval($_POST['_show_sig']) : 1, +        'reply_mode'         => isset($_POST['_reply_mode']) ? intval($_POST['_reply_mode']) : 0, +        'strip_existing_sig' => isset($_POST['_strip_existing_sig']), +        'default_font'       => rcube_utils::get_input_value('_default_font', rcube_utils::INPUT_POST), +        'default_font_size'  => rcube_utils::get_input_value('_default_font_size', rcube_utils::INPUT_POST), +        'reply_all_mode'     => intval($_POST['_reply_all_mode']), +        'forward_attachment' => !empty($_POST['_forward_attachment']),      ); -  break; +    break; -  case 'addressbook': +case 'addressbook':      $a_user_prefs = array( -      'default_addressbook'  => rcube_utils::get_input_value('_default_addressbook', rcube_utils::INPUT_POST, true), -      'autocomplete_single'  => isset($_POST['_autocomplete_single']) ? TRUE : FALSE, -      'addressbook_sort_col' => rcube_utils::get_input_value('_addressbook_sort_col', rcube_utils::INPUT_POST), -      'addressbook_name_listing' => intval(rcube_utils::get_input_value('_addressbook_name_listing', rcube_utils::INPUT_POST)), -      'addressbook_pagesize' => is_numeric($_POST['_addressbook_pagesize']) ? max(2, intval($_POST['_addressbook_pagesize'])) : $CONFIG['addressbook_pagesize'], +        'default_addressbook'  => rcube_utils::get_input_value('_default_addressbook', rcube_utils::INPUT_POST, true), +        'autocomplete_single'  => isset($_POST['_autocomplete_single']) ? true : false, +        'addressbook_sort_col' => rcube_utils::get_input_value('_addressbook_sort_col', rcube_utils::INPUT_POST), +        'addressbook_name_listing' => intval(rcube_utils::get_input_value('_addressbook_name_listing', rcube_utils::INPUT_POST)), +        'addressbook_pagesize' => is_numeric($_POST['_addressbook_pagesize']) ? max(2, intval($_POST['_addressbook_pagesize'])) : $CONFIG['addressbook_pagesize'],      ); -  break; +    break; -  case 'server': +case 'server':      $a_user_prefs = array( -      'read_when_deleted' => isset($_POST['_read_when_deleted']) ? TRUE : FALSE, -      'skip_deleted'      => isset($_POST['_skip_deleted']) ? TRUE : FALSE, -      'flag_for_deletion' => isset($_POST['_flag_for_deletion']) ? TRUE : FALSE, -      'delete_always' 	  => isset($_POST['_delete_always']) ? TRUE : FALSE, -      'delete_junk' 	  => isset($_POST['_delete_junk']) ? TRUE : FALSE, -      'logout_purge'      => isset($_POST['_logout_purge']) ? TRUE : FALSE, -      'logout_expunge'    => isset($_POST['_logout_expunge']) ? TRUE : FALSE, +        'read_when_deleted' => isset($_POST['_read_when_deleted']) ? true : false, +        'skip_deleted'      => isset($_POST['_skip_deleted']) ? true : false, +        'flag_for_deletion' => isset($_POST['_flag_for_deletion']) ? true : false, +        'delete_always'     => isset($_POST['_delete_always']) ? true : false, +        'delete_junk'       => isset($_POST['_delete_junk']) ? true : false, +        'logout_purge'      => isset($_POST['_logout_purge']) ? true : false, +        'logout_expunge'    => isset($_POST['_logout_expunge']) ? true : false,      ); -  break; +    break; -  case 'folders': +case 'folders':      $a_user_prefs = array( -      'show_real_foldernames'  => -      isset($_POST['_show_real_foldernames']) ? TRUE : FALSE, -      'drafts_mbox' => rcube_utils::get_input_value('_drafts_mbox', rcube_utils::INPUT_POST, true), -      'sent_mbox'   => rcube_utils::get_input_value('_sent_mbox', rcube_utils::INPUT_POST, true), -      'junk_mbox'   => rcube_utils::get_input_value('_junk_mbox', rcube_utils::INPUT_POST, true), -      'trash_mbox'  => rcube_utils::get_input_value('_trash_mbox', rcube_utils::INPUT_POST, true), +        'show_real_foldernames' => isset($_POST['_show_real_foldernames']) ? true : false, +        'drafts_mbox' => rcube_utils::get_input_value('_drafts_mbox', rcube_utils::INPUT_POST, true), +        'sent_mbox'   => rcube_utils::get_input_value('_sent_mbox', rcube_utils::INPUT_POST, true), +        'junk_mbox'   => rcube_utils::get_input_value('_junk_mbox', rcube_utils::INPUT_POST, true), +        'trash_mbox'  => rcube_utils::get_input_value('_trash_mbox', rcube_utils::INPUT_POST, true),      ); -  break; +    break;  }  $plugin = rcmail::get_instance()->plugins->exec_hook('preferences_save', -  array('prefs' => $a_user_prefs, 'section' => $CURR_SECTION)); +    array('prefs' => $a_user_prefs, 'section' => $CURR_SECTION));  $a_user_prefs = $plugin['prefs'];  // don't override these parameters -foreach ((array)$CONFIG['dont_override'] as $p) -  $a_user_prefs[$p] = $CONFIG[$p]; +foreach ((array)$CONFIG['dont_override'] as $p) { +    $a_user_prefs[$p] = $CONFIG[$p]; +}  // verify some options -switch ($CURR_SECTION) -{ -  case 'general': - +switch ($CURR_SECTION) { +case 'general':      // switch UI language      if (isset($_POST['_language']) && $a_user_prefs['language'] != $_SESSION['language']) { -      $RCMAIL->load_language($a_user_prefs['language']); -      $OUTPUT->command('reload', 500); +        $RCMAIL->load_language($a_user_prefs['language']); +        $OUTPUT->command('reload', 500);      }      // switch skin (if valid, otherwise unset the pref and fall back to default)      if (!$OUTPUT->set_skin($a_user_prefs['skin'])) -      unset($a_user_prefs['skin']); +        unset($a_user_prefs['skin']);      else if ($RCMAIL->config->get('skin') != $a_user_prefs['skin']) -      $OUTPUT->command('reload', 500); +        $OUTPUT->command('reload', 500);      $a_user_prefs['timezone'] = (string) $a_user_prefs['timezone'];      if (!empty($a_user_prefs['refresh_interval']) && !empty($CONFIG['min_refresh_interval'])) { -      if ($a_user_prefs['refresh_interval'] < $CONFIG['min_refresh_interval']) { -        $a_user_prefs['refresh_interval'] = $CONFIG['min_refresh_interval']; -      } +        if ($a_user_prefs['refresh_interval'] < $CONFIG['min_refresh_interval']) { +            $a_user_prefs['refresh_interval'] = $CONFIG['min_refresh_interval']; +        }      }      break; -  case 'mailbox': - +case 'mailbox':      // force min size -    if ($a_user_prefs['mail_pagesize'] < 1) -      $a_user_prefs['mail_pagesize'] = 10; +    if ($a_user_prefs['mail_pagesize'] < 1) { +        $a_user_prefs['mail_pagesize'] = 10; +    } -    if (isset($CONFIG['max_pagesize']) && ($a_user_prefs['mail_pagesize'] > $CONFIG['max_pagesize'])) -      $a_user_prefs['mail_pagesize'] = (int) $CONFIG['max_pagesize']; +    if (isset($CONFIG['max_pagesize']) && ($a_user_prefs['mail_pagesize'] > $CONFIG['max_pagesize'])) { +        $a_user_prefs['mail_pagesize'] = (int) $CONFIG['max_pagesize']; +    }      break; -  case 'addressbook': - +case 'addressbook':      // force min size -    if ($a_user_prefs['addressbook_pagesize'] < 1) -      $a_user_prefs['addressbook_pagesize'] = 10; +    if ($a_user_prefs['addressbook_pagesize'] < 1) { +        $a_user_prefs['addressbook_pagesize'] = 10; +    } -    if (isset($CONFIG['max_pagesize']) && ($a_user_prefs['addressbook_pagesize'] > $CONFIG['max_pagesize'])) -      $a_user_prefs['addressbook_pagesize'] = (int) $CONFIG['max_pagesize']; +    if (isset($CONFIG['max_pagesize']) && ($a_user_prefs['addressbook_pagesize'] > $CONFIG['max_pagesize'])) { +        $a_user_prefs['addressbook_pagesize'] = (int) $CONFIG['max_pagesize']; +    }      break; -  case 'folders': - +case 'folders':      // special handling for 'default_folders'      if (in_array('default_folders', (array)$CONFIG['dont_override'])) { -      foreach (array('drafts_mbox','sent_mbox','junk_mbox','trash_mbox') as $p) -        $a_user_prefs[$p] = $CONFIG[$p]; -    } else { -      $a_user_prefs['default_folders'] = array('INBOX'); -      foreach (array('drafts_mbox','sent_mbox','junk_mbox','trash_mbox') as $p) { -        if ($a_user_prefs[$p]) -          $a_user_prefs['default_folders'][] = $a_user_prefs[$p]; -      } +        foreach (array('drafts_mbox','sent_mbox','junk_mbox','trash_mbox') as $p) { +            $a_user_prefs[$p] = $CONFIG[$p]; +        } +    } +    else { +        $a_user_prefs['default_folders'] = array('INBOX'); +        foreach (array('drafts_mbox','sent_mbox','junk_mbox','trash_mbox') as $p) { +            if ($a_user_prefs[$p]) { +                $a_user_prefs['default_folders'][] = $a_user_prefs[$p]; +            } +        }      }      break; @@ -211,14 +211,14 @@ switch ($CURR_SECTION)  // Save preferences  if (!$plugin['abort']) -  $saved = $RCMAIL->user->save_prefs($a_user_prefs); +    $saved = $RCMAIL->user->save_prefs($a_user_prefs);  else -  $saved = $plugin['result']; +    $saved = $plugin['result'];  if ($saved) -  $OUTPUT->show_message('successfullysaved', 'confirmation'); +    $OUTPUT->show_message('successfullysaved', 'confirmation');  else -  $OUTPUT->show_message($plugin['message'] ? $plugin['message'] : 'errorsaving', 'error'); +    $OUTPUT->show_message($plugin['message'] ? $plugin['message'] : 'errorsaving', 'error');  // display the form again  $RCMAIL->overwrite_action('edit-prefs'); | 
