Source for file options.php

Documentation is available at options.php

  1. <?php
  2.  
  3. /**
  4.  * Message and Spam Filter Plugin - Filtering Options
  5.  *
  6.  * @copyright 1999-2020 The SquirrelMail Project Team
  7.  * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  8.  * @version $Id: options.php 14845 2020-01-07 08:09:34Z pdontthink $
  9.  * @package plugins
  10.  * @subpackage filters
  11.  */
  12.  
  13. /**
  14.  * Include the SquirrelMail initialization file.
  15.  */
  16. require('../../include/init.php');
  17. include_once(SM_PATH 'functions/imap_general.php');
  18. include_once(SM_PATH 'functions/forms.php');
  19. include_once(SM_PATH 'plugins/filters/filters.php');
  20.  
  21.  
  22. /* get globals */
  23. sqgetGlobalVar('delimiter'$delimiterSQ_SESSION);
  24.  
  25. sqgetGlobalVar('theid'$theid);
  26. sqgetGlobalVar('action'$actionSQ_GET);
  27. global $imap_stream_options// in case not defined in config
  28.  
  29. if (sqgetGlobalVar('filter_submit',$filter_submit,SQ_POST)) {
  30.  
  31.     if(isset($theid) ) $theid 0;
  32.  
  33.     $complete_post=true;
  34.  
  35.     // FIXME: write human readable error messages
  36.     sqgetGlobalVar('filter_what'$filter_whatSQ_POST);
  37.     if (!sqgetGlobalVar('filter_what'$filter_whatSQ_POST)) {
  38.         do_error("Post error");
  39.         $complete_post=false;
  40.     }
  41.  
  42.     sqgetGlobalVar('filter_where'$filter_whereSQ_POST);
  43.     if (!sqgetGlobalVar('filter_where'$filter_whereSQ_POST)) {
  44.         do_error("Post error");
  45.         $complete_post=false;
  46.     }
  47.  
  48.     sqgetGlobalVar('filter_folder'$filter_folderSQ_POST);
  49.     if (!sqgetGlobalVar('filter_folder'$filter_folderSQ_POST)) {
  50.         do_error("Post error");
  51.         $complete_post=false;
  52.     }
  53.  
  54.     if ($complete_post{
  55.         $filter_what str_replace(',''###COMMA###'$filter_what);
  56.         $filter_what str_replace("\\\\""\\"$filter_what);
  57.         $filter_what str_replace("\\\""'"'$filter_what);
  58.         $filter_what str_replace('"''&quot;'$filter_what);
  59.  
  60.         if (empty($filter_what)) {
  61.             do_error(_("WARNING! You must enter something to search for."));
  62.             $action 'edit';
  63.         }
  64.  
  65.         if (($filter_where == 'Header'&& (strchr($filter_what,':'== '')) {
  66.             do_error(_("WARNING! Header filters should be of the format &quot;Header: value&quot;"));
  67.             $action 'edit';
  68.         }
  69.         if ($action != 'edit'{
  70.         setPref($data_dir$username'filter'.$theid$filter_where.','.$filter_what.','.$filter_folder);
  71.         }
  72.         $filters[$theid]['where'$filter_where;
  73.         $filters[$theid]['what'$filter_what;
  74.         $filters[$theid]['folder'$filter_folder;
  75.     }
  76. elseif (isset($action&& $action == 'delete'{
  77.       remove_filter($theid);
  78. elseif (isset($action&& $action == 'move_up'{
  79.       filter_swap($theid$theid 1);
  80. elseif (isset($action&& $action == 'move_down'{
  81.       filter_swap($theid$theid 1);
  82. elseif (sqgetGlobalVar('user_submit',$user_submit,SQ_POST)) {
  83.     sqgetGlobalVar('filters_user_scan_set',$filters_user_scan_set,SQ_POST);
  84.     setPref($data_dir$username'filters_user_scan'$filters_user_scan_set);
  85.     echo '<br /><div style="text-align: center;"><b>'._("Saved Scan type")."</b></div>\n";
  86. }
  87.  
  88.    $filters load_filters();
  89.    $filters_user_scan getPref($data_dir$username'filters_user_scan');
  90.  
  91.    echo html_tag'table',
  92.             html_tag'tr',
  93.                 html_tag'td',
  94.                     '<div style="text-align: center;"><b>' _("Options"' - ' _("Message Filtering"'</b></div>' ,
  95.                     'left'$color[0]
  96.                 )
  97.             ),
  98.             'center''''width="95%" border="0" cellpadding="2" cellspacing="0"'
  99.         .
  100.         '<br /><form method="post" action="options.php">'.
  101.         html_tag'table''''center''''border="0" cellpadding="2" cellspacing="0"' .
  102.             html_tag'tr' .
  103.                 html_tag'th'_("What to Scan:")'right''''style="white-space: nowrap;"' .
  104.                 html_tag'td''''left' .
  105.             '<select name="filters_user_scan_set">'.
  106.             '<option value=""';
  107.     if ($filters_user_scan == ''{
  108.         echo ' selected="selected"';
  109.     }
  110.     echo '>' _("All messages"'</option>'.
  111.             '<option value="new"';
  112.     if ($filters_user_scan == 'new'{
  113.         echo ' selected="selected"';
  114.     }
  115.     echo '>' _("Only unread messages"'</option>' .
  116.             '</select>'.
  117.         '</td>'.
  118.         html_tag'td''<input type="submit" name="user_submit" value="' _("Save"'" />''left' .
  119.         '</table>'.
  120.         '</form>'.
  121.  
  122.         html_tag'div''[<a href="options.php?action=add">' _("New".
  123.             '</a>] - [<a href="'.SM_PATH.'src/options.php">' _("Done"'</a>]' ,
  124.         'center' '<br />';
  125.  
  126.     if (isset($action&& ($action == 'add' || $action == 'edit')) {
  127.  
  128.         $imapConnection sqimap_login($usernamefalse$imapServerAddress$imapPort0$imap_stream_options);
  129.         $boxes sqimap_mailbox_list($imapConnection);
  130.  
  131.         for ($a 0$cnt count($boxes)$a $cnt$a++{
  132.             if (strtolower($boxes[$a]['formatted']== 'inbox'{
  133.                 unset($boxes[$a]);
  134.             }
  135.         }
  136.  
  137.         sqimap_logout($imapConnection);
  138.         if !isset($theid) ) {
  139.             $theid count($filters);
  140.         }
  141.         echo html_tag'div''''center' .
  142.              '<form action="options.php" method="post">'.
  143.              html_tag'table''''''''border="0" cellpadding="2" cellspacing="0"' .
  144.              html_tag'tr' .
  145.                 html_tag'td'_("Match:")'left' .
  146.                 html_tag'td''''left' .
  147.                     '<select name="filter_where">';
  148.  
  149.         $L = isset($filters[$theid]['where']);
  150.  
  151.         $sel (($L && $filters[$theid]['where'== 'From')?' selected="selected"':'');
  152.         echo "<option value=\"From\"$sel>_("From"'</option>';
  153.  
  154.         $sel (($L && $filters[$theid]['where'== 'To')?' selected="selected"':'');
  155.         echo "<option value=\"To\"$sel>_("To"'</option>';
  156.  
  157.         $sel (($L && $filters[$theid]['where'== 'Cc')?' selected="selected"':'');
  158.         echo "<option value=\"Cc\"$sel>_("Cc"'</option>';
  159.  
  160.         $sel (($L && $filters[$theid]['where'== 'To or Cc')?' selected="selected"':'');
  161.         echo "<option value=\"To or Cc\"$sel>_("To or Cc"'</option>';
  162.  
  163.         $sel (($L && $filters[$theid]['where'== 'Subject')?' selected="selected"':'');
  164.         echo "<option value=\"Subject\"$sel>_("Subject"'</option>';
  165.  
  166.         $sel (($L && $filters[$theid]['where'== 'Message Body')?' selected="selected"':'');
  167.         echo "<option value=\"Message Body\"$sel>_("Message Body"'</option>';
  168.  
  169.         $sel (($L && $filters[$theid]['where'== 'Header and Body')?' selected="selected"':'');
  170.         echo "<option value=\"Header and Body\"$sel>_("Header and Body"'</option>';
  171.  
  172.         $sel (($L && $filters[$theid]['where'== 'Header')?' selected="selected"':'');
  173.         echo "<option value=\"Header\"$sel>_("Header"'</option>';
  174.  
  175.         echo         '</select>'.
  176.                 '</td>'.
  177.             '</tr>'.
  178.             html_tag'tr' .
  179.                 html_tag'td'_("Contains:")'right' .
  180.                 html_tag'td''''left' .
  181.                     '<input type="text" size="32" name="filter_what" value="';
  182.         if (isset($filters[$theid]['what'])) {
  183.             echo sm_encode_html_special_chars($filters[$theid]['what']);
  184.         }
  185.         echo '" />'.
  186.                 '</td>'.
  187.             '</tr>'.
  188.             html_tag'tr' .
  189.                 html_tag'td'_("Move to:")'left' .
  190.                 html_tag'td''''left' .
  191.                     '<tt>'.
  192.                     '<select name="filter_folder">';
  193.         $selected 0;
  194.         if isset($filters[$theid]['folder']) )
  195.           $selected array(strtolower($filters[$theid]['folder']));
  196.         echo sqimap_mailbox_option_list(0$selected0$boxes);
  197.         echo        '</select>'.
  198.                     '</tt>'.
  199.                 '</td>'.
  200.             '</tr>'.
  201.             '</table>'.
  202.             '<input type="submit" name="filter_submit" value="' _("Submit""\" />\n".
  203.             addHidden('theid'$theid).
  204.             '</form>'.
  205.             '</div>';
  206.  
  207.     }
  208.  
  209. if (count($filters)) {
  210.     echo html_tag'table''''center''''border="0" cellpadding="3" cellspacing="0"' );
  211.  
  212.     for ($i=0$num count($filters)$i $num$i++{
  213.  
  214.         $clr (($i 2)?$color[0]:$color[9]);
  215.         $fdr ($folder_prefix)?str_replace($folder_prefix""$filters[$i]["folder"]):$filters[$i]["folder"];
  216.         echo html_tag'tr'''''$clr .
  217.                    html_tag'td',
  218.                        '<small>' .
  219.                        "[<a href=\"options.php?theid=$i&amp;action=edit\">_("Edit"'</a>]'.
  220.                        '</small>' ,
  221.                    'left' .
  222.                    html_tag'td',
  223.                        '<small>' .
  224.                        "[<a href=\"options.php?theid=$i&amp;action=delete\">_("Delete"'</a>]'.
  225.                        '</small>' ,
  226.                    'left' );
  227.  
  228.         if ($num 1{
  229.             echo html_tag'td''''center' '<small>[';
  230.             if (isset($filters[$i 1])) {
  231.                 echo "<a href=\"options.php?theid=$i&amp;action=move_down\">_("Down"'</a>';
  232.                 if ($i 0{
  233.                     echo '&nbsp;|&nbsp;';
  234.                 }
  235.             }
  236.             if ($i 0{
  237.                 echo "<a href=\"options.php?theid=$i&amp;action=move_up\">_("Up"'</a>';
  238.             }
  239.             echo ']</small></td>';
  240.         }
  241.         echo html_tag'td''-''left' .
  242.              html_tag'td''''left' );
  243.         printf_("If %s contains %s then move to %s"),
  244.             '<b>'.$filters[$i]['where'].'</b>',
  245.             '<b>'.$filters[$i]['what'].'</b>',
  246.             '<b>'.sm_encode_html_special_chars(imap_utf7_decode_local($fdr)).'</b>');
  247.         echo '</td></tr>';
  248.  
  249.     }
  250.     echo '</table>';
  251. }
  252.     echo html_tag'table',
  253.             html_tag'tr',
  254.                 html_tag'td''&nbsp;''left' )
  255.             ,
  256.         'center''''width="80%" border="0" cellpadding="2" cellspacing="0"' );
  257.     echo '</body></html>';

Documentation generated on Mon, 13 Jan 2020 04:23:12 +0100 by phpDocumentor 1.4.3