fix php5 mistakes and remove disabled code. disabled code might be used to make sure
[squirrelmail.git] / plugins / squirrelspell / setup.php
index 5869cca31fe55fa1541c53202e20556c853f135e..a404a6243a8e7d1823f813256a6ca9642c714ed1 100644 (file)
@@ -3,62 +3,62 @@
  * setup.php
  * -----------
  * Squirrelspell setup file, as defined by the SquirrelMail-1.2 API.
- * 
- * Copyright (c) 1999-2004 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() {
@@ -66,22 +66,65 @@ 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