|
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 ?> |