<?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