* setup.php
* -----------
* Squirrelspell setup file, as defined by the SquirrelMail-1.2 API.
- *
- * Copyright (c) 1999-2003 The SquirrelMail development team
- * Licensed under the GNU GPL. For full terms see the file COPYING.
*
- * $Id$
+ * Copyright (c) 1999-2005 The SquirrelMail Project Team
+ * Licensed under the GNU GPL. For full terms see the file COPYING.
*
- * @author Konstantin Riabitsev <icon@duke.edu> ($Author$)
- * @version $Date$
+ * @author Konstantin Riabitsev <icon@duke.edu>
+ * @version $Id$
+ * @package plugins
+ * @subpackage squirrelspell
*/
+/** @ignore */
+if (! defined('SM_PATH')) define('SM_PATH','../../');
+
/**
- * Standard squirrelmail plugin initialization API.
- *
+ * 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['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';
+ '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;
/**
- * soupNazi checks if this browser is capable of using the plugin.
+ * Check if this browser is capable of using the plugin
*/
- if (!soupNazi()) {
+ if (checkForJavascript()) {
/**
* The browser checks out.
- * Register Squirrelspell with the $optionpages array.
+ * 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);
+ 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 (!soupNazi()) {
+ 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 "<script type=\"text/javascript\">\n"
- . "<!--\n"
- . 'document.write("<input type=\"button\" value=\"'
- . _("Check Spelling")
- . '\" onclick=\"window.open(\'../plugins/squirrelspell/sqspell_'
- . 'interface.php\', \'sqspell\', \'status=yes,width=550,height=370,'
- . 'resizable=yes\')\">");' . "\n"
- . "//-->\n"
- . "</script>\n";
+ echo "<script type=\"text/javascript\">\n".
+ "<!--\n".
+ 'document.write("<input type=\"button\" value=\"'.
+ _("Check Spelling").
+ '\" name=\"check_spelling\" onclick=\"window.open(\'../plugins/squirrelspell/sqspell_'.
+ 'interface.php\', \'sqspell\', \'status=yes,width=550,height=370,'.
+ 'resizable=yes\')\" />");' . "\n".
+ "//-->\n".
+ "</script>\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