includes/clientside/tinymce/plugins/spellchecker/classes/PSpell.php
changeset 784 72df14a56a03
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/includes/clientside/tinymce/plugins/spellchecker/classes/PSpell.php	Sun Dec 21 17:56:32 2008 -0500
@@ -0,0 +1,81 @@
+<?php
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+class PSpell extends SpellChecker {
+	/**
+	 * Spellchecks an array of words.
+	 *
+	 * @param {String} $lang Language code like sv or en.
+	 * @param {Array} $words Array of words to spellcheck.
+	 * @return {Array} Array of misspelled words.
+	 */
+	function &checkWords($lang, $words) {
+		$plink = $this->_getPLink($lang);
+
+		$outWords = array();
+		foreach ($words as $word) {
+			if (!pspell_check($plink, trim($word)))
+				$outWords[] = utf8_encode($word);
+		}
+
+		return $outWords;
+	}
+
+	/**
+	 * Returns suggestions of for a specific word.
+	 *
+	 * @param {String} $lang Language code like sv or en.
+	 * @param {String} $word Specific word to get suggestions for.
+	 * @return {Array} Array of suggestions for the specified word.
+	 */
+	function &getSuggestions($lang, $word) {
+		$words = pspell_suggest($this->_getPLink($lang), $word);
+
+		for ($i=0; $i<count($words); $i++)
+			$words[$i] = utf8_encode($words[$i]);
+
+		return $words;
+	}
+
+	/**
+	 * Opens a link for pspell.
+	 */
+	function &_getPLink($lang) {
+		// Check for native PSpell support
+		if (!function_exists("pspell_new"))
+			$this->throwError("PSpell support not found in PHP installation.");
+
+		// Setup PSpell link
+		$plink = pspell_new(
+			$lang,
+			$this->_config['PSpell.spelling'],
+			$this->_config['PSpell.jargon'],
+			$this->_config['PSpell.encoding'],
+			$this->_config['PSpell.mode']
+		);
+
+		// Setup PSpell link
+/*		if (!$plink) {
+			$pspellConfig = pspell_config_create(
+				$lang,
+				$this->_config['PSpell.spelling'],
+				$this->_config['PSpell.jargon'],
+				$this->_config['PSpell.encoding']
+			);
+
+			$plink = pspell_new_config($pspell_config);
+		}*/
+
+		if (!$plink)
+			$this->throwError("No PSpell link found opened.");
+
+		return $plink;
+	}
+}
+
+?>