Added support for Nox Spell Server; plus small bugfixes
| | |
| | | // 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'] = ''; |
| | |
| | | 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']; |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | 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); |
| | | } |
| | | |
| | | |
| | |
| | | // 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'], |
| | |
| | | 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'); |
| | | |
| | |
| | | |
| | | $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"; |