From 6649b1f0a5db6160d197a13ca79cfd67fbb02d77 Mon Sep 17 00:00:00 2001 From: svncommit Date: Sat, 23 Sep 2006 23:37:29 +0000 Subject: added TinyMCE spellchecker plugin, configured to use GoogleSpell --- .../js/tiny_mce/plugins/spellchecker/tinyspell.php | 142 +++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 program/js/tiny_mce/plugins/spellchecker/tinyspell.php (limited to 'program/js/tiny_mce/plugins/spellchecker/tinyspell.php') diff --git a/program/js/tiny_mce/plugins/spellchecker/tinyspell.php b/program/js/tiny_mce/plugins/spellchecker/tinyspell.php new file mode 100644 index 000000000..18345e65b --- /dev/null +++ b/program/js/tiny_mce/plugins/spellchecker/tinyspell.php @@ -0,0 +1,142 @@ +'; + die; + } + + // Basic config + $defaultLanguage = $spellCheckerConfig['default.language']; + $defaultMode = $spellCheckerConfig['default.mode']; + + // Normaly not required to configure + $defaultSpelling = $spellCheckerConfig['default.spelling']; + $defaultJargon = $spellCheckerConfig['default.jargon']; + $defaultEncoding = $spellCheckerConfig['default.encoding']; + $outputType = "xml"; // Do not change + + // Get input parameters. + + $check = urldecode($_REQUEST['check']); + $cmd = sanitize($_REQUEST['cmd']); + $lang = sanitize($_REQUEST['lang'], "strict"); + $mode = sanitize($_REQUEST['mode'], "strict"); + $spelling = sanitize($_REQUEST['spelling'], "strict"); + $jargon = sanitize($_REQUEST['jargon'], "strict"); + $encoding = sanitize($_REQUEST['encoding'], "strict"); + $sg = sanitize($_REQUEST['sg'], "bool"); + $words = array(); + + $validRequest = true; + + if (empty($check)) + $validRequest = false; + + if (empty($lang)) + $lang = $defaultLanguage; + + if (empty($mode)) + $mode = $defaultMode; + + if (empty($spelling)) + $spelling = $defaultSpelling; + + if (empty($jargon)) + $jargon = $defaultJargon; + + if (empty($encoding)) + $encoding = $defaultEncoding; + + function sanitize($str, $type="strict") { + switch ($type) { + case "strict": + $str = preg_replace("/[^a-zA-Z0-9_\-]/i", "", $str); + break; + case "loose": + $str = preg_replace("//i", "<", $str); + break; + case "bool": + if ($str == "true" || $str == true) + $str = true; + else + $str = false; + break; + } + + return $str; + } + + $result = array(); + $tinyspell = new $spellCheckerConfig['class']($spellCheckerConfig, $lang, $mode, $spelling, $jargon, $encoding); + + if (count($tinyspell->errorMsg) == 0) { + switch($cmd) { + case "spell": + // Space for non-exec version and \n for the exec version. + $words = preg_split("/ |\n/", $check, -1, PREG_SPLIT_NO_EMPTY); + $result = $tinyspell->checkWords($words); + break; + + case "suggest": + $result = $tinyspell->getSuggestion($check); + break; + + default: + // Just use this for now. + $tinyspell->errorMsg[] = "No command."; + $outputType = $outputType . "error"; + break; + } + } else + $outputType = $outputType . "error"; + + if (!$result) + $result = array(); + + // Output data + switch($outputType) { + case "xml": + header('Content-type: text/xml; charset=utf-8'); + $body = ''; + $body .= "\n"; + + if (count($result) == 0) + $body .= ''; + else + $body .= ''. urlencode(implode(" ", $result)) .''; + + echo $body; + break; + case "xmlerror"; + header('Content-type: text/xml; charset=utf-8'); + $body = ''; + $body .= "\n"; + $body .= 'errorMsg) .'" />'; + echo $body; + break; + case "html": + var_dump($result); + break; + case "htmlerror": + echo "Error"; + break; + } + +?> -- cgit v1.2.3