Added support for Nox Spell Server; plus small bugfixes

release-0.6
thomascube 18 years ago
parent 8d4bcda874
commit 9960666abe

@ -157,10 +157,20 @@ $rcmail_config['read_when_deleted'] = TRUE;
// false causes deleted messages to be permanantly removed if there is no Trash folder
$rcmail_config['flag_for_deletion'] = TRUE;
// Make use of the built-in spell checker. It is based on GoogieSpell
// which means that the message content will be sent to Google in order to check spelling
// Make use of the built-in spell checker. It is based on GoogieSpell.
$rcmail_config['enable_spellcheck'] = TRUE;
// For a locally installed Nox Spell Server, please specify the URI to call it.
// Get Nox Spell Server from http://orangoo.com/labs/?page_id=72
// Leave empty to use the Google spell checking service, what means
// that the message content will be sent to Google in order to check spelling
$rcmail_config['spellcheck_uri'] = '';
// These languages can be selected for spell checking.
// Configure as a PHP style hash array: array('en'=>'English', 'de'=>'Deutsch');
// Leave empty for default set of Google spell check languages
$rcmail_config['spellcheck_languages'] = NULL;
// path to a text file which will be added to each sent message
// paths are relative to the RoundCube root folder
$rcmail_config['generic_message_footer'] = '';

@ -439,12 +439,12 @@ function rcmail_login($user, $pass, $host=NULL)
Inspired by Marco <P0L0_notspam_binware.org>
*/
// 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'];
}

@ -1063,7 +1063,7 @@ class rcube_imap
if (is_array($part->parts))
for ($i=0; $i<count($part->parts); $i++)
$this->_get_part_numbers($part->parts[$i], &$a_parts);
$this->_get_part_numbers($part->parts[$i], $a_parts);
}

@ -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');

@ -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";

Loading…
Cancel
Save