diff options
Diffstat (limited to 'program')
-rwxr-xr-x | program/js/tiny_mce/plugins/spellchecker/classes/GoogleSpell.php | 16 | ||||
-rwxr-xr-x | program/js/tiny_mce/plugins/spellchecker/config.php | 1 |
2 files changed, 13 insertions, 4 deletions
diff --git a/program/js/tiny_mce/plugins/spellchecker/classes/GoogleSpell.php b/program/js/tiny_mce/plugins/spellchecker/classes/GoogleSpell.php index 53d4300e3..73479844b 100755 --- a/program/js/tiny_mce/plugins/spellchecker/classes/GoogleSpell.php +++ b/program/js/tiny_mce/plugins/spellchecker/classes/GoogleSpell.php @@ -53,8 +53,16 @@ class GoogleSpell extends SpellChecker { $server = "www.google.com";
$port = 443;
$path = "/tbproxy/spell?lang=" . $lang . "&hl=en";
- $host = "www.google.com";
- $url = "https://" . $server;
+ $ssl = true;
+
+ // spell check uri is configured (added by RoundCube)
+ if (!empty($this->_config['rpc_uri'])) {
+ $a_uri = parse_url($this->_config['rpc_uri']);
+ $ssl = ($a_uri['scheme']=='https' || $a_uri['scheme']=='ssl');
+ $port = $a_uri['port'] ? $a_uri['port'] : ($ssl ? 443 : 80);
+ $server = $a_uri['host'];
+ $path = $a_uri['path'] . ($a_uri['query'] ? '?'.$a_uri['query'] : '') . $lang;
+ }
// Setup XML request
$xml = '<?xml version="1.0" encoding="utf-8" ?><spellrequest textalreadyclipped="0" ignoredups="0" ignoredigits="1" ignoreallcaps="1"><text>' . $str . '</text></spellrequest>';
@@ -74,7 +82,7 @@ class GoogleSpell extends SpellChecker { if (function_exists('curl_init')) {
// Use curl
$ch = curl_init();
- curl_setopt($ch, CURLOPT_URL,$url);
+ curl_setopt($ch, CURLOPT_URL, ($ssl ? "https://" : "http://") . $server);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $header);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
@@ -82,7 +90,7 @@ class GoogleSpell extends SpellChecker { curl_close($ch);
} else {
// Use raw sockets
- $fp = fsockopen("ssl://" . $server, $port, $errno, $errstr, 30);
+ $fp = fsockopen(($ssl ? "ssl://" : "") . $server, $port, $errno, $errstr, 30);
if ($fp) {
// Send request
fwrite($fp, $header);
diff --git a/program/js/tiny_mce/plugins/spellchecker/config.php b/program/js/tiny_mce/plugins/spellchecker/config.php index 827749e48..53e6e469f 100755 --- a/program/js/tiny_mce/plugins/spellchecker/config.php +++ b/program/js/tiny_mce/plugins/spellchecker/config.php @@ -7,6 +7,7 @@ $rcmail_config = new rcube_config();
$config['general.engine'] = $rcmail_config->get('spellcheck_engine') == 'pspell' ? 'PSpell' : 'GoogleSpell';
+ $config['GoogleSpell.rpc_uri'] = $rcmail_config->get('spellcheck_uri');
/** end RoundCube specific code */
|