- /*
- * 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 = ereg_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") {
+
+/**
+ * Message and Spam Filter Plugin - Filtering Options
+ *
+ * @copyright 1999-2016 The SquirrelMail Project Team
+ * @license http://opensource.org/licenses/gpl-license.php GNU Public License
+ * @version $Id$
+ * @package plugins
+ * @subpackage filters
+ */
+
+/**
+ * Include the SquirrelMail initialization file.
+ */
+require('../../include/init.php');
+include_once(SM_PATH . 'functions/imap_general.php');
+include_once(SM_PATH . 'functions/forms.php');
+include_once(SM_PATH . 'plugins/filters/filters.php');
+
+displayPageHeader($color);
+
+/* get globals */
+sqgetGlobalVar('delimiter', $delimiter, SQ_SESSION);
+
+sqgetGlobalVar('theid', $theid);
+sqgetGlobalVar('action', $action, SQ_GET);
+global $imap_stream_options; // in case not defined in config
+
+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;
+ }
+
+ sqgetGlobalVar('filter_where', $filter_where, SQ_POST);
+ if (!sqgetGlobalVar('filter_where', $filter_where, SQ_POST)) {
+ do_error("Post error");
+ $complete_post=false;
+ }
+
+ sqgetGlobalVar('filter_folder', $filter_folder, SQ_POST);
+ if (!sqgetGlobalVar('filter_folder', $filter_folder, SQ_POST)) {
+ do_error("Post error");
+ $complete_post=false;
+ }
+
+ if ($complete_post) {
+ $filter_what = str_replace(',', '###COMMA###', $filter_what);
+ $filter_what = str_replace("\\\\", "\\", $filter_what);
+ $filter_what = str_replace("\\\"", '"', $filter_what);
+ $filter_what = str_replace('"', '"', $filter_what);
+
+ if (empty($filter_what)) {
+ do_error(_("WARNING! You must enter something to search for."));
+ $action = 'edit';
+ }
+
+ if (($filter_where == 'Header') && (strchr($filter_what,':') == '')) {
+ do_error(_("WARNING! Header filters should be of the format "Header: value""));
+ $action = 'edit';
+ }
+ if ($action != 'edit') {
+ 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($action) && $action == 'delete') {