* @version $Id$ * @package plugins * @subpackage squirrelspell */ /** @ignore */ if (! defined('SM_PATH')) define('SM_PATH','../../'); /** * Standard SquirrelMail plugin initialization API. * * @return void */ function squirrelmail_plugin_init_squirrelspell() { global $squirrelmail_plugin_hooks; $squirrelmail_plugin_hooks['compose_button_row']['squirrelspell'] = 'squirrelspell_setup'; $squirrelmail_plugin_hooks['optpage_register_block']['squirrelspell'] = 'squirrelspell_optpage_register_block'; $squirrelmail_plugin_hooks['options_link_and_description']['squirrelspell'] = 'squirrelspell_options'; $squirrelmail_plugin_hooks['right_main_after_header']['squirrelspell'] = 'squirrelspell_upgrade'; } /** * This function formats and adds the plugin and its description to the * Options screen. * * @return void */ function squirrelspell_optpage_register_block() { global $optpage_blocks; /** * Check if this browser is capable of using the plugin */ if (checkForJavascript()) { /** * The browser checks out. * Register Squirrelspell with the $optpage_blocks array. */ $optpage_blocks[] = array( 'name' => _("SpellChecker Options"), 'url' => '../plugins/squirrelspell/sqspell_options.php', 'desc' => _("Here you may set up how your personal dictionary is stored, edit it, or choose which languages should be available to you when spell-checking."), 'js' => TRUE); } } /** * This function adds a "Check Spelling" link to the "Compose" row * during message composition. * * @return void */ function squirrelspell_setup() { /** * Check if this browser is capable of displaying SquirrelSpell * correctly. */ if (checkForJavascript()) { /** * Some people may choose to disable javascript even though their * browser is capable of using it. So these freaks don't complain, * use document.write() so the "Check Spelling" button is not * displayed if js is off in the browser. */ echo "\n"; } } /** * Transparently upgrades user's dictionaries when message listing is loaded * @since 1.5.1 (sqspell 0.5) */ function squirrelspell_upgrade() { // globalize configuration vars before loading config. // Vars are not available to scripts if not globalized before loading config. // FIXME: move configuration loading to loading_prefs hook. global $SQSPELL_APP, $SQSPELL_APP_DEFAULT, $SQSPELL_WORDS_FILE, $SQSPELL_CRYPTO; include_once(SM_PATH . 'plugins/squirrelspell/sqspell_config.php'); include_once(SM_PATH . 'plugins/squirrelspell/sqspell_functions.php'); if (! sqspell_check_version(0,5)) { $langs=sqspell_getSettings_old(null); $words=sqspell_getWords_old(); sqspell_saveSettings($langs); foreach ($langs as $lang) { $lang_words=sqspell_getLang_old($words,$lang); $aLang_words=explode("\n",$lang_words); $new_words=array(); foreach($aLang_words as $word) { if (! preg_match("/^#/",$word) && trim($word)!='') { $new_words[]=$word; } } sqspell_writeWords($new_words,$lang); } // bump up version number setPref($data_dir,$username,'sqspell_version','0.5'); } } /** * Function that displays internal squirrelspell version * @since 1.5.1 (sqspell 0.5) * @return string plugin's version * @todo remove 'cvs' part from version when plugin's code is * stable enough */ function squirrelspell_version() { return '0.5cvs'; } ?>