X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=plugins%2Fsquirrelspell%2Fsetup.php;h=898fa0682bb5b798061d32bc3e27a9ace50ee910;hb=a6d3eff675f7ace3d69f6d9788489ca930333315;hp=13e75748202d7bff7faa2123a7952086761fba81;hpb=598294a727a2789b7c562ee7083da703c8bb0628;p=squirrelmail.git diff --git a/plugins/squirrelspell/setup.php b/plugins/squirrelspell/setup.php index 13e75748..898fa068 100644 --- a/plugins/squirrelspell/setup.php +++ b/plugins/squirrelspell/setup.php @@ -4,30 +4,33 @@ * ----------- * Squirrelspell setup file, as defined by the SquirrelMail-1.2 API. * - * Copyright (c) 1999-2005 The SquirrelMail development team + * Copyright (c) 1999-2005 The SquirrelMail Project Team * Licensed under the GNU GPL. For full terms see the file COPYING. * - * $Id$ - * - * @author Konstantin Riabitsev ($Author$) - * @version $Date$ + * @author Konstantin Riabitsev + * @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'; + 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'; } /** @@ -37,22 +40,22 @@ function squirrelmail_plugin_init_squirrelspell() { * @return void */ function squirrelspell_optpage_register_block() { - global $optpage_blocks; + global $optpage_blocks; + /** + * Check if this browser is capable of using the plugin + */ + if (checkForJavascript()) { /** - * Check if this browser is capable of using the plugin + * The browser checks out. + * Register Squirrelspell with the $optpage_blocks array. */ - if (checkForJavascript()) { - /** - * The browser checks out. - * Register Squirrelspell with the $optionpages 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); - } + $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); + } } /** @@ -62,26 +65,70 @@ function squirrelspell_optpage_register_block() { * @return void */ function squirrelspell_setup() { + /** + * Check if this browser is capable of displaying SquirrelSpell + * correctly. + */ + if (checkForJavascript()) { /** - * Check if this browser is capable of displaying SquirrelSpell - * correctly. + * 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. */ - 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"; + 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'; } + ?> \ No newline at end of file