From 1d5779b2577453a1000f38fa987bb0eafd3c554f Mon Sep 17 00:00:00 2001 From: alecpl Date: Mon, 30 May 2011 16:19:51 +0000 Subject: - Add option to force spellchecking before sending a message (#1485458) --- program/steps/mail/sendmail.inc | 17 +++++++++++++++++ program/steps/settings/func.inc | 10 ++++++++++ program/steps/settings/save_prefs.inc | 1 + 3 files changed, 28 insertions(+) (limited to 'program/steps') diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc index a492e937c..de971a25a 100644 --- a/program/steps/mail/sendmail.inc +++ b/program/steps/mail/sendmail.inc @@ -409,6 +409,22 @@ if (!$savedraft) { "\r\n\r\n" . $message_body; } + // Check spelling before send + if ($CONFIG['spellcheck_before_send'] && $CONFIG['enable_spellcheck'] + && empty($_SESSION['compose']['spell_checked']) + ) { + $spellchecker = new rcube_spellchecker(); + $spell_result = $spellchecker->check($message_body, $isHtml); + + $_SESSION['compose']['spell_checked'] = true; + + if (!$spell_result) { + $OUTPUT->show_message('mispellingsfound', 'error'); + $OUTPUT->command('command', 'spellcheck'); + $OUTPUT->send('iframe'); + } + } + // generic footer for all messages if ($isHtml && !empty($CONFIG['generic_message_footer_html'])) { $footer = file_get_contents(realpath($CONFIG['generic_message_footer_html'])); @@ -420,6 +436,7 @@ if (!$savedraft) { if ($isHtml) $footer = '
'.$footer.'
'; } + if ($footer) $message_body .= "\r\n" . $footer; if ($isHtml) diff --git a/program/steps/settings/func.inc b/program/steps/settings/func.inc index 280185e76..cf2d59199 100644 --- a/program/steps/settings/func.inc +++ b/program/steps/settings/func.inc @@ -545,6 +545,16 @@ function rcmail_user_prefs($current=null) ); } + if (!isset($no_override['spellcheck_before_send']) && $config['enable_spellcheck']) { + $field_id = 'rcmfd_spellcheck_before_send'; + $input_spellcheck = new html_checkbox(array('name' => '_spellcheck_before_send', 'id' => $field_id, 'value' => 1)); + + $blocks['main']['options']['spellcheck_before_send'] = array( + 'title' => html::label($field_id, Q(rcube_label('spellcheckbeforesend'))), + 'content' => $input_spellcheck->show($config['spellcheck_before_send']?1:0), + ); + } + if (!isset($no_override['show_sig'])) { $field_id = 'rcmfd_show_sig'; $select_show_sig = new html_select(array('name' => '_show_sig', 'id' => $field_id)); diff --git a/program/steps/settings/save_prefs.inc b/program/steps/settings/save_prefs.inc index a5ec2346a..ac1cfb3d0 100644 --- a/program/steps/settings/save_prefs.inc +++ b/program/steps/settings/save_prefs.inc @@ -70,6 +70,7 @@ switch ($CURR_SECTION) '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, 'show_sig' => isset($_POST['_show_sig']) ? intval($_POST['_show_sig']) : 1, 'top_posting' => !empty($_POST['_top_posting']), 'strip_existing_sig' => isset($_POST['_strip_existing_sig']), -- cgit v1.2.3