- /*
- * Message and Spam Filter Plugin
- * By Luke Ehresman <luke@squirrelmail.org>
- * Tyler Akins
- * Brent Bice
- * (c) 2000 (GNU GPL - see ../../COPYING)
- *
- * This plugin filters your inbox into different folders based upon given
- * criteria. It is most useful for people who are subscibed to mailing lists
- * to help organize their messages. The argument stands that filtering is
- * not the place of the client, which is why this has been made a plugin for
- * SquirrelMail. You may be better off using products such as Sieve or
- * Procmail to do your filtering so it happens even when SquirrelMail isn't
- * running.
- *
- * If you need help with this, or see improvements that can be made, please
- * email me directly at the address above. I definately welcome suggestions
- * and comments. This plugin, as is the case with all SquirrelMail plugins,
- * is not directly supported by the developers. Please come to me off the
- * mailing list if you have trouble with it.
- *
- * Also view plugins/README.plugins for more information.
- *
- */
- chdir('..');
- require_once('../src/validate.php');
- require_once('../functions/page_header.php');
- require_once('../functions/imap.php');
- require_once('../src/load_prefs.php');
-
- global $AllowSpamFilters;
-
- displayPageHeader($color, 'None');
-
- if (isset($filter_submit)) {
- if (!isset($theid)) $theid = 0;
- $filter_what = str_replace(',', ' ', $filter_what);
- $filter_what = str_replace("\\\\", "\\", $filter_what);
- $filter_what = str_replace("\\\"", "\"", $filter_what);
- $filter_what = str_replace("\"", """, $filter_what);
-
- setPref($data_dir, $username, 'filter'.$theid, $filter_where.','.$filter_what.','.$filter_folder);
- $filters[$theid]['where'] = $filter_where;
- $filters[$theid]['what'] = $filter_what;
- $filters[$theid]['folder'] = $filter_folder;
- } elseif (isset($spam_submit) && $AllowSpamFilters) {
- $spam_filters = load_spam_filters();
- setPref($data_dir, $username, 'filters_spam_folder', $filters_spam_folder_set);
- setPref($data_dir, $username, 'filters_spam_scan', $filters_spam_scan_set);
- foreach ($spam_filters as $Key => $Value)
- {
- $input = $spam_filters[$Key]['prefname'] . '_set';
- setPref($data_dir, $username, $spam_filters[$Key]['prefname'],
- $$input);
- }
- } elseif (isset($action) && $action == 'delete') {
- remove_filter($theid);
- } elseif (isset($action) && $action == 'move_up') {
- filter_swap($theid, $theid - 1);
- } elseif (isset($action) && $action == 'move_down') {
- filter_swap($theid, $theid + 1);
- }
-
- if ($AllowSpamFilters) {
- $filters_spam_folder = getPref($data_dir, $username, 'filters_spam_folder');
- $filters_spam_scan = getPref($data_dir, $username, 'filters_spam_scan');
- }
- $filters = load_filters();
+/**
+ * Message and Spam Filter Plugin - Filtering Options
+ *
+ * This plugin filters your inbox into different folders based upon given
+ * criteria. It is most useful for people who are subscibed to mailing lists
+ * to help organize their messages. The argument stands that filtering is
+ * not the place of the client, which is why this has been made a plugin for
+ * SquirrelMail. You may be better off using products such as Sieve or
+ * Procmail to do your filtering so it happens even when SquirrelMail isn't
+ * running.
+ *
+ * If you need help with this, or see improvements that can be made, please
+ * email me directly at the address above. I definately welcome suggestions
+ * and comments. This plugin, as is the case with all SquirrelMail plugins,
+ * is not directly supported by the developers. Please come to me off the
+ * mailing list if you have trouble with it.
+ *
+ * Also view plugins/README.plugins for more information.
+ *
+ * @version $Id$
+ * @copyright (c) 1999-2005 The SquirrelMail Project Team
+ * @license http://opensource.org/licenses/gpl-license.php GNU Public License
+ * @package plugins
+ * @subpackage filters
+ */
+
+/**
+ * Path for SquirrelMail required files.
+ * @ignore
+ */
+define('SM_PATH','../../');
+
+/* SquirrelMail required files. */
+require_once(SM_PATH . 'include/validate.php');
+require_once(SM_PATH . 'functions/page_header.php');
+require_once(SM_PATH . 'functions/imap.php');
+require_once(SM_PATH . 'functions/imap_mailbox.php');
+require_once(SM_PATH . 'include/load_prefs.php');
+require_once(SM_PATH . 'functions/forms.php');
+require_once(SM_PATH . 'plugins/filters/filters.php');
+
+global $AllowSpamFilters;
+
+displayPageHeader($color, 'None');
+
+/* get globals */
+sqgetGlobalVar('username', $username, SQ_SESSION);
+sqgetGlobalVar('key', $key, SQ_COOKIE);
+sqgetGlobalVar('onetimepad', $onetimepad, SQ_SESSION);
+sqgetGlobalVar('delimiter', $delimiter, SQ_SESSION);
+
+sqgetGlobalVar('theid', $theid);
+sqgetGlobalVar('action', $action, SQ_GET);
+
+if (sqgetGlobalVar('filter_submit',$filter_submit,SQ_POST)) {
+
+ if(! isset($theid) ) $theid = 0;
+
+ $complete_post=true;
+
+ // FIXME: write human readable error messages
+ sqgetGlobalVar('filter_what', $filter_what, SQ_POST);
+ if (!sqgetGlobalVar('filter_what', $filter_what, SQ_POST)) {
+ do_error("Post error");
+ $complete_post=false;
+ }