* @version $Id$
* @package plugins
* @subpackage squirrelspell
+ * @todo remove sqspell_ prefix from main php scripts.
*/
/** @ignore */
}
/**
- * This function formats and adds the plugin and its description to the
- * Options screen.
+ * Register option block
*
+ * This function formats and adds the plugin and its description to the
+ * Options screen. Code moved to internal function in order to reduce
+ * setup.php size.
* @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);
- }
+ include_once(SM_PATH . 'plugins/squirrelspell/sqspell_functions.php');
+ squirrelspell_optpage_block_function();
}
/**
+ * Add spell check button in compose.
+ *
* 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 "<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";
- }
+ include_once(SM_PATH . 'plugins/squirrelspell/sqspell_functions.php');
+ squirrelspell_setup_function();
}
/**
+ * Upgrade dictionaries
+ *
* 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');
- }
+ squirrelspell_upgrade_function();
}
/**
- * Function that displays internal squirrelspell version
+ * Display 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';
+ return '0.5';
}
?>
\ No newline at end of file
getHashedFile($username, $data_dir, "$username.words");
/**
- * Function used cheching words in user's dictionary
+ * Function used for checking words in user's dictionary
* @global string $SQSPELL_EREG
* @deprecated It is not used since 1.5.1 (sqspell 0.5)
*/
* @subpackage squirrelspell
*/
+/** @ignore */
+if (! defined('SM_PATH')) define('SM_PATH','../../');
+
+/** globalize configuration vars **/
+global $SQSPELL_APP, $SQSPELL_APP_DEFAULT, $SQSPELL_WORDS_FILE, $SQSPELL_CRYPTO;
+
+/**
+ * load plugin configuration
+ * @todo allow storing configuration file in config/ directory
+ */
+include_once(SM_PATH . 'plugins/squirrelspell/sqspell_config.php');
+
+/** Hooked functions **/
+
+/**
+ * Register option page block (internal function)
+ * @since 1.5.1 (sqspell 0.5)
+ * @return void
+ */
+function squirrelspell_optpage_block_function() {
+ global $optpage_blocks;
+
+ /**
+ * Dependency on JavaScript is checked by SquirrelMail scripts
+ * 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 (internal function).
+ * @since 1.5.1 (sqspell 0.5)
+ * @return void
+ */
+function squirrelspell_setup_function() {
+ /**
+ * 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 "<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";
+ }
+}
+
+/**
+ * Upgrade dictionaries (internal function)
+ *
+ * Transparently upgrades user's dictionaries when message listing is loaded
+ * @since 1.5.1 (sqspell 0.5)
+ */
+function squirrelspell_upgrade_function() {
+ global $data_dir, $username;
+
+ 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');
+ }
+}
+
+/** Internal functions **/
+
/**
* This function is the GUI wrapper for the options page. SquirrelSpell
* uses it for creating all Options pages.
/* SquirrelMail required files. */
require_once(SM_PATH . 'include/validate.php');
include_once(SM_PATH . 'functions/display_messages.php');
-include_once(SM_PATH . $SQSPELL_DIR . 'sqspell_config.php');
include_once(SM_PATH . $SQSPELL_DIR . 'sqspell_functions.php');
/**
/**
* Set a couple of constants and defaults. Don't change these,
* the configurable stuff is in sqspell_config.php
+ * @todo do we really need $SQSPELL_DIR var?
*/
$SQSPELL_DIR='plugins/squirrelspell/';
$SQSPELL_CRYPTO=FALSE;
/* SquirrelMail required files. */
require_once(SM_PATH . 'include/validate.php');
include_once(SM_PATH . 'functions/display_messages.php');
-include_once(SM_PATH . $SQSPELL_DIR . 'sqspell_config.php');
include_once(SM_PATH . $SQSPELL_DIR . 'sqspell_functions.php');
/**