From 9960666abef914905768c5f9fb43c3de846b80c2 Mon Sep 17 00:00:00 2001 From: thomascube Date: Sun, 20 Aug 2006 14:06:30 +0000 Subject: Added support for Nox Spell Server; plus small bugfixes --- program/include/main.inc | 6 +++--- program/include/rcube_imap.inc | 2 +- program/steps/mail/compose.inc | 7 ++++++- program/steps/mail/spell.inc | 20 ++++++++++++++++---- 4 files changed, 26 insertions(+), 9 deletions(-) (limited to 'program') diff --git a/program/include/main.inc b/program/include/main.inc index 887668b47..1a2b8c793 100644 --- a/program/include/main.inc +++ b/program/include/main.inc @@ -439,12 +439,12 @@ function rcmail_login($user, $pass, $host=NULL) Inspired by Marco */ // Check if we need to add domain - if ($CONFIG['username_domain'] && !strstr($user, '@')) + if (!empty($CONFIG['username_domain']) && !strstr($user, '@')) { if (is_array($CONFIG['username_domain']) && isset($CONFIG['username_domain'][$host])) $user .= '@'.$CONFIG['username_domain'][$host]; - else if (!empty($CONFIG['username_domain'])) - $user .= '@'.$CONFIG['username_domain']; + else if (is_string($CONFIG['username_domain'])) + $user .= '@'.$CONFIG['username_domain']; } diff --git a/program/include/rcube_imap.inc b/program/include/rcube_imap.inc index 185565ca2..fe97a92f2 100644 --- a/program/include/rcube_imap.inc +++ b/program/include/rcube_imap.inc @@ -1063,7 +1063,7 @@ class rcube_imap if (is_array($part->parts)) for ($i=0; $iparts); $i++) - $this->_get_part_numbers($part->parts[$i], &$a_parts); + $this->_get_part_numbers($part->parts[$i], $a_parts); } 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"; -- cgit v1.2.3