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'); - ?> -
-
-
- Message Filtering
-
-
[New] - [Done]

- - - -' . _("Options") . ' - ' . _("Message Filtering") . '' , + 'left', $color[0] + ) + ), + 'center', '', 'width="95%" border="0" cellpadding="2" cellspacing="0"' + ) . + '
'. + html_tag( 'table', '', 'center', '', 'border="0" cellpadding="2" cellspacing="0"' ) . + html_tag( 'tr' ) . + html_tag( 'th', _("What to Scan:"), 'right', '', 'style="white-space: nowrap;"' ) . + html_tag( 'td', '', 'left' ) . + ''. + ''. + html_tag( 'td', '', 'left' ) . + '
-[Edit] - -[Delete] - -[Down 0) echo ' | '; -} -if ($i > 0) { -?>Up] -- If contains then move to -
'. + ''. + + 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]); } - ?> - - - - -
 
- - - - - -
Spam Filtering
- -

[Edit]
- Spam is sent to not set yet]'; - } - ?>
Spam scan is limited to

- - - $Value) - { - echo '\n"; - } - - ?> -
'; - - if ($spam_filters[$Key]['enabled']) - { - echo 'ON'; - } - else - { - echo 'OFF'; - } - - echo ' - '; - - if ($spam_filters[$Key]['link']) - { - echo ''; - } - - echo $spam_filters[$Key]['name']; - if ($spam_filters[$Key]['link']) - { - echo ''; - } - echo "
- '. + html_tag( 'table', '', '', '', 'border="0" cellpadding="2" cellspacing="0"' ) . + html_tag( 'tr' ) . + html_tag( 'td', _("Match:"), 'left' ) . + html_tag( 'td', '', 'left' ) . + ' - From\n"; - else echo "