Use clearer-named CheckForJavaScript in stead of !soupNazi.
[squirrelmail.git] / plugins / squirrelspell / setup.php
index 671b63adae09de60a37f12ed51a6a4311b0bde86..06ecd71bfc19eeda62cf6d7da1de38432de4e51e 100644 (file)
@@ -1,73 +1,87 @@
 <?php
-
 /**
- * SETUP.PHP
- * ---------
- * This is a standard Squirrelmail-1.2 API for plugins.
+ * 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$
+ *
+ * @author Konstantin Riabitsev <icon@duke.edu> ($Author$)
+ * @version $Date$
+ * @package plugins
+ * @subpackage squirrelspell
  */
 
 /**
- * This function checks whether the user's USER_AGENT is known to
- * be broken. If so, returns true and the plugin is invisible to the
- * offending browser.
+ * Standard squirrelmail plugin initialization API.
+ *
+ * @return void
  */
-function soupNazi(){
-    global $HTTP_USER_AGENT;
-    require ('../plugins/squirrelspell/sqspell_config.php');
-    $soup_nazi = false;
-
-    $soup_menu = explode(',', $SQSPELL_SOUP_NAZI);
-    for ($i = 0; $i < sizeof($soup_menu); $i++) {
-        if (stristr($HTTP_USER_AGENT, trim($soup_menu[$i]))) {
-            $soup_nazi=true;
-        }
-    }
-    return $soup_nazi;
-}
-
 function squirrelmail_plugin_init_squirrelspell() {
-    /* Standard initialization API. */
-    global $squirrelmail_plugin_hooks;
-
-    $squirrelmail_plugin_hooks["compose_button_row"]["squirrelspell"] = "squirrelspell_setup";
-    $squirrelmail_plugin_hooks["options_register"]["squirrelspell"] = "squirrelspell_options";
-    $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';
 }
 
-function squirrelspell_options() {
-   // Gets added to the user's OPTIONS page.
-   global $optionpages;
-
-   if (soupNazi()) {
-       return;
-   }
-
-   /* Register Squirrelspell with the $optionpages array. */
-   $optionpages[] = 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 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 $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);
+  }
 }
 
+/**
+ * This function adds a "Check Spelling" link to the "Compose" row
+ * during message composition.
+ *
+ * @return void
+ */
 function squirrelspell_setup() {
-   /* Gets added to the COMPOSE buttons row. */
-   if (soupNazi()) {
-       return;
-   }
-
-?>
-    <script type="text/javascript">
-    <!--
-        // using document.write to hide this functionality from people
-        // with JavaScript turned off.
-        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')\">");
-    //-->
-    </script>
-<?php
+  /**
+   * 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") 
+      . '\" onclick=\"window.open(\'../plugins/squirrelspell/sqspell_'
+      . 'interface.php\', \'sqspell\', \'status=yes,width=550,height=370,'
+      . 'resizable=yes\')\">");' . "\n"
+      . "//-->\n"
+      . "</script>\n";
+  }
 }
-
 ?>