Seditio Source
Root |
./othercms/b2evolution_7.2.3/rsc/ext/tiny_mce/plugins/spellchecker/includes/PSpellEngine.php
<?php
/**
 * PSpellEngine.php
 *
 * Copyright, Moxiecode Systems AB
 * Released under LGPL License.
 *
 * License: http://www.tinymce.com/license
 * Contributing: http://www.tinymce.com/contributing
 */

class TinyMCE_SpellChecker_PSpellEngine extends TinyMCE_SpellChecker_Engine {
   
/**
     * Spellchecks an array of words.
     *
     * @param String $lang Selected language code (like en_US or de_DE). Shortcodes like "en" and "de" work with enchant >= 1.4.1
     * @param Array $words Array of words to check.
     * @return Name/value object with arrays of suggestions.
     */
   
public function getSuggestions($lang, $words) {
       
$config = $this->getConfig();

        switch (
$config['PSpell.mode']) {
            case
"fast":
               
$mode = PSPELL_FAST;
                break;

            case
"slow":
               
$mode = PSPELL_SLOW;
                break;

            default:
               
$mode = PSPELL_NORMAL;
        }

       
// Setup PSpell link
       
$plink = pspell_new(
           
$lang,
           
$config['pspell.spelling'],
           
$config['pspell.jargon'],
           
$config['pspell.encoding'],
           
$mode
       
);

        if (!
$plink) {
            throw new
Exception("No PSpell link found opened.");
        }

       
$outWords = array();
        foreach (
$words as $word) {
            if (!
pspell_check($plink, trim($word))) {
               
$outWords[] = utf8_encode($word);
            }
        }

        return
$outWords;
    }

   
/**
     * Return true/false if the engine is supported by the server.
     *
     * @return boolean True/false if the engine is supported.
     */
   
public function isSupported() {
        return
function_exists("pspell_new");
    }
}

TinyMCE_Spellchecker_Engine::add("pspell", "TinyMCE_SpellChecker_PSpellEngine");
?>