X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=plugins%2Ffilters%2Foptions.php;h=8056a83dc5cb2cefe04fc1a91ef8827be3ff8e34;hp=ec836f65a9c9f5a2682f5d98c6fc42c359de70a2;hb=505e00aad983adab70d4b001f450064cbda37b86;hpb=8e485f9b9e7368c041e7a2f6c652e6bd71d6c666 diff --git a/plugins/filters/options.php b/plugins/filters/options.php index ec836f65..8056a83d 100644 --- a/plugins/filters/options.php +++ b/plugins/filters/options.php @@ -1,183 +1,257 @@ '); - $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') { +/** + * 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, 'None'); + +/* get globals */ +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; + } + + 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(',', ' ', $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"; +} $filters = load_filters(); + $filters_user_scan = getPref($data_dir, $username, 'filters_user_scan'); + + echo html_tag( 'table', + html_tag( 'tr', + html_tag( 'td', + '
' . _("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' ) . + ''. + '
'. - echo '
' . - ''. - "
". - '
' . _("Options") . ' - ' . _("Message Filtering") . '
'. - '
'. - '
[' . _("New") . - '] - [' . _("Done") . ']

'; + html_tag( 'div', '[' . _("New") . + '] - [' . _("Done") . ']' , + 'center' ) . '
'; if (isset($action) && ($action == 'add' || $action == 'edit')) { - $imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0); + + $imapConnection = sqimap_login($username, false, $imapServerAddress, $imapPort, 0); $boxes = sqimap_mailbox_list($imapConnection); + + for ($a = 0, $cnt = count($boxes); $a < $cnt; $a++) { + if (strtolower($boxes[$a]['formatted']) == 'inbox') { + unset($boxes[$a]); + } + } + sqimap_logout($imapConnection); if ( !isset($theid) ) { $theid = count($filters); } - echo '
'. - '
'. - ''. - ''. - ''. - ''. ''. - ''. - ''. - ''. ''. - ''. - ''. - ''. ''. '
' . _("Match:") . ''. - ''; $L = isset($filters[$theid]['where']); - $sel = (($L && $filters[$theid]['where'] == 'From')?'selected':''); - echo "'; + $sel = (($L && $filters[$theid]['where'] == 'From')?' selected="selected"':''); + echo "'; - $sel = (($L && $filters[$theid]['where'] == 'To')?'selected':''); - echo "'; + $sel = (($L && $filters[$theid]['where'] == 'To')?' selected="selected"':''); + echo "'; - $sel = (($L && $filters[$theid]['where'] == 'Cc')?'selected':''); - echo "'; + $sel = (($L && $filters[$theid]['where'] == 'Cc')?' selected="selected"':''); + echo "'; - $sel = (($L && $filters[$theid]['where'] == 'To or Cc')?'selected':''); - echo "'; + $sel = (($L && $filters[$theid]['where'] == 'To or Cc')?' selected="selected"':''); + echo "'; - $sel = (($L && $filters[$theid]['where'] == 'Subject')?'selected':''); - echo "'; + $sel = (($L && $filters[$theid]['where'] == 'Subject')?' selected="selected"':''); + echo "'; - $sel = (($L && $filters[$theid]['where'] == 'Header')?'selected':''); - echo "'; + $sel = (($L && $filters[$theid]['where'] == 'Message Body')?' selected="selected"':''); + echo "'; + + $sel = (($L && $filters[$theid]['where'] == 'Header and Body')?' selected="selected"':''); + echo "'; + + $sel = (($L && $filters[$theid]['where'] == 'Header')?' selected="selected"':''); + echo "'; echo ''. '
'. - _("Contains:"). - ''. - ''. + echo '" />'. '
'. - _("Move to:"). - ''. + html_tag( 'tr' ) . + html_tag( 'td', _("Move to:"), 'left' ) . + html_tag( 'td', '', 'left' ) . ''. - ''. + ''. + ''. '
'. - ''. - "". + '\n". + addHidden('theid', $theid). '
'. - '
'; + ''; } - echo ''; +if (count($filters)) { + echo html_tag( 'table', '', 'center', '', 'border="0" cellpadding="3" cellspacing="0"' ); - for ($i=0; $i < count($filters); $i++) { + 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 "'; } - if ($i > 0) { - echo "" . _("Up") . ''; - } - echo ']'; } - echo '
". - "[" . _("Edit") . ']'. - ''. - "[" . _("Delete") . ']'. - '['; - - if (isset($filters[$i + 1])) { - echo "" . _("Down") . ''; + 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 ' | '; + echo "" . _("Up") . ''; } + echo ']-'; - printf( _("If %s contains %s then move to %s"), _($filters[$i]['where']), $filters[$i]['what'], $fdr ); + echo html_tag( 'td', '-', 'left' ) . + html_tag( 'td', '', 'left' ); + printf( _("If %s contains %s then move to %s"), + ''.$filters[$i]['where'].'', + ''.$filters[$i]['what'].'', + ''.htmlspecialchars(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 '';