| Current Path : /home/zieirix/www/components/com_jce/editor/tiny_mce/plugins/spellchecker/classes/ |
| Current File : /home/zieirix/www/components/com_jce/editor/tiny_mce/plugins/spellchecker/classes/pspell.php |
<?php
require_once __DIR__ . '/spellchecker.php';
/**
* @author Moxiecode
* @copyright Copyright (c) 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
*/
public 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
*/
public 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.
*/
private function getPLink($lang)
{
// Check for native PSpell support
if (!function_exists('pspell_new')) {
$this->throwError('PSpell support not found in PHP installation.');
}
$pspell_config = pspell_config_create(
$lang,
$this->_config['PSpell.spelling'],
$this->_config['PSpell.jargon'],
$this->_config['PSpell.encoding']
);
pspell_config_personal($pspell_config, $this->_config['PSpell.dictionary']);
$plink = pspell_new_config($pspell_config);
if (!$plink) {
$this->throwError('No PSpell link found opened.');
}
return $plink;
}
/**
* Add a word to the PSPell personal dictionary
* From http://slack5.com/blog/2008/12/tinymce-add-to-dictionary/.
*
* @param object $lang
* @param object $word
*
* @return
*/
public function addToDictionary($lang, $word)
{
$plink = $this->getPLink($lang);
pspell_add_to_personal($plink, $word);
pspell_save_wordlist($plink);
return true;
}
}