Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 3.10.x will end 8 November 2021 (12 months).
  • Bug fixes for security issues in 3.10.x will end 9 May 2022 (18 months).
  • PHP version: minimum PHP 7.2.0 Note: minimum PHP version has increased since Moodle 3.8. PHP 7.3.x and 7.4.x are supported too.
   1  <?php
   2  /**

   3   * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $

   4   *

   5   * This class was contributed by Michel Weimerskirch.

   6   *

   7   * @package MCManager.includes

   8   * @author Moxiecode

   9   * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.

  10   */
  11  
  12  class EnchantSpell extends SpellChecker {
  13  	 /**

  14  	  * Spellchecks an array of words.

  15  	  *

  16  	  * @param String $lang Selected language code (like en_US or de_DE). Shortcodes like "en" and "de" work with enchant >= 1.4.1

  17  	  * @param Array $words Array of words to check.

  18  	  * @return Array of misspelled words.

  19  	  */
  20  	 function &checkWords($lang, $words) {
  21  	 	 $r = enchant_broker_init();
  22  	 	 
  23  	 	 if (enchant_broker_dict_exists($r,$lang)) {
  24  	 	 	 $d = enchant_broker_request_dict($r, $lang);
  25  	 	 	 
  26  	 	 	 $returnData = array();
  27  	 	 	 foreach($words as $key => $value) {
  28  	 	 	 	 $correct = enchant_dict_check($d, $value);
  29  	 	 	 	 if(!$correct) {
  30  	 	 	 	 	 $returnData[] = trim($value);
  31  	 	 	 	 }
  32  	 	 	 }
  33  	 
  34  	 	 	 return $returnData;
  35  	 	 	 enchant_broker_free_dict($d);
  36  	 	 } else {
  37  
  38  	 	 }
  39  	 	 enchant_broker_free($r);
  40  	 }
  41  
  42  	 /**

  43  	  * Returns suggestions for a specific word.

  44  	  *

  45  	  * @param String $lang Selected language code (like en_US or de_DE). Shortcodes like "en" and "de" work with enchant >= 1.4.1

  46  	  * @param String $word Specific word to get suggestions for.

  47  	  * @return Array of suggestions for the specified word.

  48  	  */
  49  	 function &getSuggestions($lang, $word) {
  50  	 	 $r = enchant_broker_init();
  51  
  52  	 	 if (enchant_broker_dict_exists($r,$lang)) {
  53  	 	 	 $d = enchant_broker_request_dict($r, $lang);
  54  	 	 	 $suggs = enchant_dict_suggest($d, $word);
  55  
  56  	 	 	 // enchant_dict_suggest() sometimes returns NULL

  57  	 	 	 if (!is_array($suggs))
  58  	 	 	 	 $suggs = array();
  59  
  60  	 	 	 enchant_broker_free_dict($d);
  61  	 	 } else {
  62  	 	 	 $suggs = array();
  63  	 	 }
  64  
  65  	 	 enchant_broker_free($r);
  66  
  67  	 	 return $suggs;
  68  	 }
  69  }
  70  
  71  ?>