diff --git a/CHANGELOG b/CHANGELOG index d42fca99b..9494f0bf3 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -7,6 +7,7 @@ CHANGELOG RoundCube Webmail - Better fix for skipping untagged responses (#1485261) - Added pspell support patch by Kris Steinhoff (#1483960) - Enable spellchecker for HTML editor (#1485114) +- Respect spellcheck_uri in tinyMCE spellchecker (#1484196) 2008/08/09 (alec) ---------- 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 = '' . $str . ''; @@ -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 */