From ded713982e3f2e73b50ba2b5589cdd82cc68b749 Mon Sep 17 00:00:00 2001 From: thomascube Date: Fri, 15 Aug 2008 22:00:33 +0000 Subject: Respect spellcheck_uri in tinyMCE spellchecker (#1484196) --- .../plugins/spellchecker/classes/GoogleSpell.php | 16 ++++++++++++---- program/js/tiny_mce/plugins/spellchecker/config.php | 1 + 2 files changed, 13 insertions(+), 4 deletions(-) (limited to 'program/js/tiny_mce/plugins/spellchecker') 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 */ -- cgit v1.2.3