diff options
Diffstat (limited to 'program/steps')
-rw-r--r-- | program/steps/mail/compose.inc | 7 | ||||
-rw-r--r-- | program/steps/mail/spell.inc | 20 |
2 files changed, 22 insertions, 5 deletions
diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc index f9ea876b7..f486175d8 100644 --- a/program/steps/mail/compose.inc +++ b/program/steps/mail/compose.inc @@ -385,13 +385,17 @@ function rcmail_compose_body($attrib) // include GoogieSpell if (!empty($CONFIG['enable_spellcheck'])) { + $lang_set = ''; + if (!empty($CONFIG['spellcheck_languages']) && is_array($CONFIG['spellcheck_languages'])) + $lang_set = "googie.setLanguages(".array2js($CONFIG['spellcheck_languages']).");\n"; + $OUTPUT->include_script('googiespell.js'); $OUTPUT->add_script(sprintf("var googie = new GoogieSpell('\$__skin_path/images/googiespell/','%s&_action=spell&lang=');\n". "googie.lang_chck_spell = \"%s\";\n". "googie.lang_rsm_edt = \"%s\";\n". "googie.lang_close = \"%s\";\n". "googie.lang_revert = \"%s\";\n". - "googie.lang_no_error_found = \"%s\";\n". + "googie.lang_no_error_found = \"%s\";\n%s". "googie.decorateTextarea('%s');\n". "%s.set_env('spellcheck', googie);", $GLOBALS['COMM_PATH'], @@ -400,6 +404,7 @@ function rcmail_compose_body($attrib) rep_specialchars_output(rcube_label('close')), rep_specialchars_output(rcube_label('revertto')), rep_specialchars_output(rcube_label('nospellerrors')), + $lang_set, $attrib['id'], $JS_OBJECT_NAME), 'foot'); diff --git a/program/steps/mail/spell.inc b/program/steps/mail/spell.inc index d60e691f6..bd03bfd3e 100644 --- a/program/steps/mail/spell.inc +++ b/program/steps/mail/spell.inc @@ -24,17 +24,29 @@ $REMOTE_REQUEST = TRUE; -$google = "ssl://www.google.com"; +// default settings +$host = "ssl://www.google.com"; $port = 443; -$lang = $_GET['lang']; +$lang = get_input_value('lang', RCUBE_INPUT_GET); $path = "/tbproxy/spell?lang=$lang"; + +// spell check uri is configured +if (!empty($CONFIG['spellcheck_uri'])) + { + $a_uri = parse_url($CONFIG['spellcheck_uri']); + $ssl = ($a_uri['scheme']=='https' || $a_uri['scheme']=='ssl'); + $port = $a_uri['port'] ? $a_uri['port'] : ($ssl ? 443 : 80); + $host = ($ssl ? 'ssl://' : '') . $a_uri['host']; + $path = $a_uri['path'] . ($a_uri['query'] ? '?'.$a_uri['query'] : '') . $lang; + } + $data = file_get_contents('php://input'); $store = ""; -if ($fp = fsockopen($google, $port, $errno, $errstr, 30)) +if ($fp = fsockopen($host, $port, $errno, $errstr, 30)) { $out = "POST $path HTTP/1.0\r\n"; - $out .= "Host: $google\r\n"; + $out .= "Host: $host\r\n"; $out .= "Content-Length: " . strlen($data) . "\r\n"; $out .= "Content-type: application/x-www-form-urlencoded\r\n"; $out .= "Connection: Close\r\n\r\n"; |