X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=plugins%2Ffilters%2Foptions.php;h=0df8e832ba89b6289bf6aefeec7068f5a178259c;hp=b53ef1a137671c750df037f757f9fa6bed15e970;hb=f197ec8835b64975ff47dc6cd86dae75605baebf;hpb=849bdf42ed7bd7cca68909d2b46869742dfd210e
diff --git a/plugins/filters/options.php b/plugins/filters/options.php
index b53ef1a1..0df8e832 100644
--- a/plugins/filters/options.php
+++ b/plugins/filters/options.php
@@ -1,349 +1,258 @@
- * 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') {
remove_filter($theid);
- } elseif (isset($action) && $action == "move_up") {
+} elseif (isset($action) && $action == 'move_up') {
filter_swap($theid, $theid - 1);
- } elseif (isset($action) && $action == "move_down") {
+} elseif (isset($action) && $action == 'move_down') {
filter_swap($theid, $theid + 1);
- }
+} elseif (sqgetGlobalVar('user_submit',$user_submit,SQ_POST)) {
+ sqgetGlobalVar('filters_user_scan_set',$filters_user_scan_set,SQ_POST);
+ setPref($data_dir, $username, 'filters_user_scan', $filters_user_scan_set);
+ echo '
'._("Saved Scan type")."
\n";
+}
- 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();
+ $filters_user_scan = getPref($data_dir, $username, 'filters_user_scan');
- ?>
-
-
- [New ] - [Done ]
-
-
-
-[Edit ]
-
-[Delete ]
-
-[Down 0) echo ' | ';
-}
-if ($i > 0) {
-?>Up ]
-- If contains then move to
-
-' . _("Options") . ' - ' . _("Message Filtering") . ' ' ,
+ 'left', $color[0]
+ )
+ ),
+ 'center', '', 'width="95%" border="0" cellpadding="2" cellspacing="0"'
+ ) .
+ '
'.
+ ''.
+
+ html_tag( 'div', '[' . _("New") .
+ ' ] - [' . _("Done") . ' ]' ,
+ 'center' ) . ' ';
+
+ if (isset($action) && ($action == 'add' || $action == 'edit')) {
+
+ $imapConnection = sqimap_login($username, false, $imapServerAddress, $imapPort, 0, $imap_stream_options);
+ $boxes = sqimap_mailbox_list($imapConnection);
+ for ($a = 0, $cnt = count($boxes); $a < $cnt; $a++) {
+ if (strtolower($boxes[$a]['formatted']) == 'inbox') {
+ unset($boxes[$a]);
}
- ?>
-
-
-
-
-
-
-
-
- [Edit ]
- Spam is sent to not set yet]';
- }
- ?> Spam scan is limited to
-
-
- '.
+ html_tag( 'table', '', '', '', 'border="0" cellpadding="2" cellspacing="0"' ) .
+ html_tag( 'tr' ) .
+ html_tag( 'td', _("Match:"), 'left' ) .
+ html_tag( 'td', '', 'left' ) .
+ '';
+
+ $L = isset($filters[$theid]['where']);
+
+ $sel = (($L && $filters[$theid]['where'] == 'From')?' selected="selected"':'');
+ echo "" . _("From") . ' ';
+
+ $sel = (($L && $filters[$theid]['where'] == 'To')?' selected="selected"':'');
+ echo "" . _("To") . ' ';
+
+ $sel = (($L && $filters[$theid]['where'] == 'Cc')?' selected="selected"':'');
+ echo "" . _("Cc") . ' ';
+
+ $sel = (($L && $filters[$theid]['where'] == 'To or Cc')?' selected="selected"':'');
+ echo "" . _("To or Cc") . ' ';
+
+ $sel = (($L && $filters[$theid]['where'] == 'Subject')?' selected="selected"':'');
+ echo "" . _("Subject") . ' ';
+
+ $sel = (($L && $filters[$theid]['where'] == 'Message Body')?' selected="selected"':'');
+ echo "" . _("Message Body") . ' ';
+
+ $sel = (($L && $filters[$theid]['where'] == 'Header and Body')?' selected="selected"':'');
+ echo "" . _("Header and Body") . ' ';
- ?>
-
-
-
- '.
+ '';
+
+ }
+
+if (count($filters)) {
+ echo html_tag( 'table', '', 'center', '', 'border="0" cellpadding="3" cellspacing="0"' );
+
+ for ($i=0, $num = count($filters); $i < $num; $i++) {
+
+ $clr = (($i % 2)?$color[0]:$color[9]);
+ $fdr = ($folder_prefix)?str_replace($folder_prefix, "", $filters[$i]["folder"]):$filters[$i]["folder"];
+ echo html_tag( 'tr', '', '', $clr ) .
+ html_tag( 'td',
+ '' .
+ "[" . _("Edit") . ' ]'.
+ ' ' ,
+ 'left' ) .
+ html_tag( 'td',
+ '' .
+ "[" . _("Delete") . ' ]'.
+ ' ' ,
+ 'left' );
+
+ if ($num > 1) {
+ echo html_tag( 'td', '', 'center' ) . '[';
+ if (isset($filters[$i + 1])) {
+ echo "" . _("Down") . ' ';
+ if ($i > 0) {
+ echo ' | ';
+ }
+ }
+ if ($i > 0) {
+ echo "" . _("Up") . ' ';
}
- ?>
-
-
-
- Moving spam directly to the trash may not be a good idea at first,
- since messages from friends and mailing lists might accidentally be marked as spam.
- Whatever folder you set this to, make sure that it gets cleaned out periodically,
- so that you don't have an excessively large mailbox hanging around.
-
-
- What to Scan:
-
- >All messages
- >Only unread messages
-
-
-
-
- The more messages you scan, the longer it takes. I would suggest
- that you scan only new messages. If you make a change to your filters, I
- would set it to scan all messages, then go view my INBOX, then come back and
- set it to scan only new messages. That way, your new spam filters will be
- applied and you'll scan even the spam you read with the new filters.
-
- $Value)
- {
- echo "$Key \n";
- echo ' - ';
- if ($spam_filters[$Key]['link'])
- {
- echo '';
- }
- echo $spam_filters[$Key]['name'];
- if ($spam_filters[$Key]['link'])
- {
- echo ' ';
- }
- echo '';
- echo $spam_filters[$Key]['comment'];
- echo " \n";
- }
- ?>
-
-
-
-
-
+ echo ']';
+ }
+ echo html_tag( 'td', '-', 'left' ) .
+ html_tag( 'td', '', 'left' );
+ printf( _("If %s contains %s then move to %s"),
+ ''.$filters[$i]['where'].' ',
+ ''.$filters[$i]['what'].' ',
+ ''.sm_encode_html_special_chars(imap_utf7_decode_local($fdr)).' ');
+ echo '';
+
+ }
+ echo '';
+}
+ echo html_tag( 'table',
+ html_tag( 'tr',
+ html_tag( 'td', ' ', 'left' )
+ ) ,
+ 'center', '', 'width="80%" border="0" cellpadding="2" cellspacing="0"' );
+ echo '