1 | <?php
|
---|
2 | /**
|
---|
3 | * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
|
---|
4 | *
|
---|
5 | * @package MCManager.includes
|
---|
6 | * @author Moxiecode
|
---|
7 | * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
|
---|
8 | */
|
---|
9 |
|
---|
10 | class PSpell extends SpellChecker {
|
---|
11 | /**
|
---|
12 | * Spellchecks an array of words.
|
---|
13 | *
|
---|
14 | * @param {String} $lang Language code like sv or en.
|
---|
15 | * @param {Array} $words Array of words to spellcheck.
|
---|
16 | * @return {Array} Array of misspelled words.
|
---|
17 | */
|
---|
18 | function &checkWords($lang, $words) {
|
---|
19 | $plink = $this->_getPLink($lang);
|
---|
20 |
|
---|
21 | $outWords = array();
|
---|
22 | foreach ($words as $word) {
|
---|
23 | if (!pspell_check($plink, trim($word)))
|
---|
24 | $outWords[] = utf8_encode($word);
|
---|
25 | }
|
---|
26 |
|
---|
27 | return $outWords;
|
---|
28 | }
|
---|
29 |
|
---|
30 | /**
|
---|
31 | * Returns suggestions of for a specific word.
|
---|
32 | *
|
---|
33 | * @param {String} $lang Language code like sv or en.
|
---|
34 | * @param {String} $word Specific word to get suggestions for.
|
---|
35 | * @return {Array} Array of suggestions for the specified word.
|
---|
36 | */
|
---|
37 | function &getSuggestions($lang, $word) {
|
---|
38 | $words = pspell_suggest($this->_getPLink($lang), $word);
|
---|
39 |
|
---|
40 | for ($i=0; $i<count($words); $i++)
|
---|
41 | $words[$i] = utf8_encode($words[$i]);
|
---|
42 |
|
---|
43 | return $words;
|
---|
44 | }
|
---|
45 |
|
---|
46 | /**
|
---|
47 | * Opens a link for pspell.
|
---|
48 | */
|
---|
49 | function &_getPLink($lang) {
|
---|
50 | // Check for native PSpell support
|
---|
51 | if (!function_exists("pspell_new"))
|
---|
52 | $this->throwError("PSpell support not found in PHP installation.");
|
---|
53 |
|
---|
54 | // Setup PSpell link
|
---|
55 | $plink = pspell_new(
|
---|
56 | $lang,
|
---|
57 | $this->_config['PSpell.spelling'],
|
---|
58 | $this->_config['PSpell.jargon'],
|
---|
59 | $this->_config['PSpell.encoding'],
|
---|
60 | $this->_config['PSpell.mode']
|
---|
61 | );
|
---|
62 |
|
---|
63 | // Setup PSpell link
|
---|
64 | /* if (!$plink) {
|
---|
65 | $pspellConfig = pspell_config_create(
|
---|
66 | $lang,
|
---|
67 | $this->_config['PSpell.spelling'],
|
---|
68 | $this->_config['PSpell.jargon'],
|
---|
69 | $this->_config['PSpell.encoding']
|
---|
70 | );
|
---|
71 |
|
---|
72 | $plink = pspell_new_config($pspell_config);
|
---|
73 | }*/
|
---|
74 |
|
---|
75 | if (!$plink)
|
---|
76 | $this->throwError("No PSpell link found opened.");
|
---|
77 |
|
---|
78 | return $plink;
|
---|
79 | }
|
---|
80 | }
|
---|
81 |
|
---|
82 | ?>
|
---|