HTML fix
[squirrelmail.git] / plugins / squirrelspell / modules / forget_me.mod
index 067891efa767e485deda65936fd2cf55e5d06b86..a81cfbe5d921a2c323815d69f0e86cad36348577 100644 (file)
@@ -1,59 +1,73 @@
 <?php
+/**
+ * forget_me.mod
+ * --------------
+ * Squirrelspell module
+ *
+ * Copyright (c) 1999-2005 The SquirrelMail Project Team
+ * Licensed under the GNU GPL. For full terms see the file COPYING.
+ *
+ * This module deletes the words from the user dictionary. Called
+ * after EDIT_DIC module.
+ *
+ *
+ *
+ * @author Konstantin Riabitsev <icon@duke.edu>
+ * @version $Id$
+ * @package plugins
+ * @subpackage squirrelspell
+ */
 
-   /**
-    **  FORGET_ME.MOD.PHP -- Squirrelspell module
-    **
-    **  Copyright (c) 1999-2002 The SquirrelMail development team
-    **  Licensed under the GNU GPL. For full terms see the file COPYING.
-    **
-    **  This module deletes the words from the user dictionary. Called
-    **  after EDIT_DIC module.                                        
-    **
-    **  $Id$
-    **/
+global $SQSPELL_VERSION, $SQSPELL_APP_DEFAULT;
 
-    // Make it two packs of Guinness and a bag of pistachios, fidian. :)
-    global $words_ary, $sqspell_use_app, $SQSPELL_VERSION;
-    if (sizeof($words_ary)){
-        // something needs to be deleted.
-        $words=sqspell_getWords();
-        $lang_words = sqspell_getLang($words, $sqspell_use_app);
-        $msg = '<p>'.
-               sprintf( _("Deleting the following entries from <strong>%s</strong> dictionary:", $sqspell_use_app ) .
-               '</p>' .
-               "<ul>\n";
-        for ($i=0; $i<sizeof($words_ary); $i++){
-            // remove word by word...
-            $lang_words=str_replace("$words_ary[$i]\n", "", $lang_words);
-            $msg .= "<li>$words_ary[$i]</li>\n";
-        }
-        $new_words_ary=split("\n", $lang_words);
-        // Wipe this lang, if only 2 members in array (no words left).
-        if (sizeof($new_words_ary)<=2) {
-            $lang_words='';
-        }
-        $new_lang_words = $lang_words;
-        // process the stuff and write the dic back.
-        $langs=sqspell_getSettings($words);
-        $words_dic = "# SquirrelSpell User Dictionary $SQSPELL_VERSION\n# Last Revision: " . date("Y-m-d") . "\n# LANG: " . join(", ", $langs) . "\n";
-        for ($i=0; $i<sizeof($langs); $i++){
-            if ($langs[$i]==$sqspell_use_app) {
-              $lang_words = $new_lang_words;
-            } else {
-                $lang_words = sqspell_getLang($words, $langs[$i]);
-            }
-            if ($lang_words) {
-                $words_dic .= $lang_words;
-            }
-        }
-        $words_dic .= "# End\n";
-        sqspell_writeWords($words_dic);
-        $msg .= '</ul>' .
-                '<p>' _("All done!") . "</p>\n";
-        sqspell_makePage(_("Personal Dictionary Updated"), null, $msg);
-    } else {
-        // Click on some words first, Einstein!
-        sqspell_makePage(_("Personal Dictionary"), null, '<p>' . _("No changes requested.") . '</p>');
-    }
-    
-?>
+if (! sqgetGlobalVar('words_ary',$words_ary,SQ_POST) || ! is_array($words_ary)) {
+    $words_ary = array();
+}
+
+if (! sqgetGlobalVar('sqspell_use_app',$sqspell_use_app,SQ_POST)){
+    $sqspell_use_app = $SQSPELL_APP_DEFAULT;
+}
+
+/**
+ * If something needs to be deleted, then $words_ary will be
+ * non-zero length.
+ */
+if (! empty($words_ary)){
+  $lang_words = sqspell_getLang($sqspell_use_app);
+  $msg = '<p>'
+     . sprintf(_("Deleting the following entries from %s dictionary:"), '<strong>'.$sqspell_use_app.'</strong>')
+     . '</p>'
+     . "<ul>\n";
+
+  // print list of deleted words
+  foreach ($words_ary as $deleted_word) {
+    $msg.= '<li>'.htmlspecialchars($deleted_word)."</li>\n";
+  }
+
+  // rebuild dictionary
+  $new_words_ary = array();
+  foreach ($lang_words as $word){
+      if (! in_array($word,$words_ary)) {
+          $new_words_ary[]=$word;
+      }
+  }
+  // save it
+  sqspell_writeWords($new_words_ary,$sqspell_use_app);
+  $msg .= '</ul><p>' . _("All done!") . "</p>\n";
+  sqspell_makePage(_("Personal Dictionary Updated"), null, $msg);
+} else {
+  /**
+   * Click on some words first, Einstein!
+   */
+  sqspell_makePage(_("Personal Dictionary"), null,
+          '<p>' . _("No changes requested.") . '</p>');
+}
+
+/**
+ * For Emacs weenies:
+ * Local variables:
+ * mode: php
+ * End:
+ * vim: syntax=php
+ */
+?>
\ No newline at end of file