Source for file setup.php

Documentation is available at setup.php

  1. <?php
  2.  
  3. /**
  4.  * setup.php
  5.  *
  6.  * delete_move_next
  7.  *   deletes or moves currently displayed message and displays
  8.  *   next or previous message.
  9.  *
  10.  * Copyright (c) 1999-2006 The SquirrelMail Project Team
  11.  * Licensed under the GNU GPL. For full terms see the file COPYING.
  12.  *
  13.  * $Id: setup.php,v 1.23.2.12 2006/06/08 14:59:19 kink Exp $
  14.  * @package plugins
  15.  * @subpackage delete_move_next
  16.  */
  17.  
  18. /**
  19.  * Initialize the plugin
  20.  * @return void 
  21.  */
  22.     global $squirrelmail_plugin_hooks;
  23.  
  24.     $squirrelmail_plugin_hooks['html_top']['delete_move_next''delete_move_next_action';
  25.     $squirrelmail_plugin_hooks['right_main_after_header']['delete_move_next''delete_move_next_action';
  26.     $squirrelmail_plugin_hooks['read_body_bottom']['delete_move_next''delete_move_next_read_b';
  27.     $squirrelmail_plugin_hooks['read_body_menu_bottom']['delete_move_next''delete_move_next_read_t';
  28.     $squirrelmail_plugin_hooks['options_display_inside']['delete_move_next''delete_move_next_display_inside';
  29.     $squirrelmail_plugin_hooks['options_display_save']['delete_move_next''delete_move_next_display_save';
  30.     $squirrelmail_plugin_hooks['loading_prefs']['delete_move_next''delete_move_next_loading_prefs';
  31. }
  32.  
  33. /* fixes the sort_array for the prev_del/next_del links when 
  34.  * using server side sorting or thread sorting 
  35.  */
  36.  
  37. function fix_sort_array ({
  38.     global $username$data_dir$allow_server_sort$allow_thread_sort,
  39.     $thread_sort_messages
  40.     $mailbox$imapConnection$sort$uid_support$mbx_response;
  41.  
  42.     // Got to grab this out of prefs, since it isn't saved from mailbox_view.php
  43.     if ($allow_thread_sort{
  44.         $thread_sort_messages getPref($data_dir$username"thread_$mailbox",0);
  45.     }
  46.  
  47.     switch (true{
  48.       case ($allow_thread_sort && $thread_sort_messages):
  49.           $server_sort_array get_thread_sort($imapConnection);
  50.           break;
  51.       case ($allow_server_sort):
  52.           $server_sort_array sqimap_get_sort_order($imapConnection$sort$mbx_response);
  53.           break;
  54.       case ($uid_support):
  55.           $server_sort_array sqimap_get_php_sort_order($imapConnection$mbx_response);
  56.           break;
  57.       default:
  58.           break;
  59.     }
  60. }
  61.  
  62. /*
  63.  * Warning: this function relies on the internal representation of
  64.  * of the message cache for the current mailbox. As such, it is fragile
  65.  * because the underlying implementation can change. I will present it
  66.  * to the squirrelmail maintainers as a proposed addition to the API,
  67.  * perhaps even as inline code to sqimap_mailbox_expunge(). In the 
  68.  * meantime, you have been warned. [[email protected] 2001/05/06]
  69.  */
  70.  
  71. function delete_move_del_arr_elem($arr$index{
  72.     $tmp array();
  73.     $j 0;
  74.     foreach ($arr as $v{
  75.         if ($j != $index{
  76.            $tmp[$v;
  77.          }
  78.          $j++;
  79.     }
  80.     return $tmp;
  81. }
  82.  
  83.     global $msort$msgs;
  84.     $keys array_keys($msort);
  85.     for ($i 0$i count($keys)$i++{
  86.         echo '<p>key ' $keys[$i' msgid ' $msgs[$keys[$i]]['ID''</p>';
  87.     }
  88. }
  89.  
  90.     global $msgs$msort$sort$imapConnection$mailbox$uid_support;
  91.     $delAt = -1;
  92.  
  93.     if(isset($msort&& count($msort0{
  94.         for ($i 0$i count($msort)$i++{
  95.             if ($msgs[$i]['ID'== $id{
  96.                 $delAt $i;
  97.             elseif ($msgs[$i]['ID'$id{
  98.                 if (!$uid_support{
  99.                    $msgs[$i]['ID']--;
  100.                 }
  101.             }
  102.         }
  103.  
  104.         $msgs delete_move_del_arr_elem($msgs$delAt);
  105.         $msort delete_move_del_arr_elem($msort$delAt);
  106.         if ($sort 6{
  107.             if ($sort 2{
  108.                 asort($msort);
  109.             else {
  110.                 arsort($msort);
  111.             }
  112.         }
  113.         sqsession_register($msgs'msgs');
  114.         sqsession_register($msort'msort');
  115.     }
  116.  
  117.     sqimap_mailbox_expunge($imapConnection$mailboxtrue);
  118. }
  119.  
  120.  
  121.     global $PHP_SELF;
  122.  
  123.     if sqgetGlobalVar('delete_id'$delete_idSQ_GET) ) {
  124.         delete_move_next_delete();
  125.         fix_sort_array();
  126.     elseif sqgetGlobalVar('move_id'$move_idSQ_POST) ) {
  127.         delete_move_next_move();
  128.         fix_sort_array();
  129.     }
  130. }
  131.  
  132.  
  133.     global $delete_move_next_t;
  134.  
  135.     if($delete_move_next_t == 'on'{
  136.         delete_move_next_read('top');
  137.     }
  138. }
  139.  
  140.  
  141.     global $delete_move_next_b;
  142.  
  143.     if ($delete_move_next_b != 'off'{
  144.         delete_move_next_read('bottom');
  145.     }
  146. }
  147.  
  148. function delete_move_next_read($currloc{
  149.     global $delete_move_next_formATtop$delete_move_next_formATbottom,
  150.            $color$where$what$currentArrayIndex$passed_id,
  151.            $mailbox$sort$startMessage$delete_id$move_id,
  152.            $imapConnection$auto_expunge$move_to_trash$mbx_response,
  153.            $uid_support$passed_ent_id;
  154.  
  155.     $urlMailbox urlencode($mailbox);
  156.  
  157.     if (!isset($passed_ent_id)) $passed_ent_id 0;
  158.  
  159.     if (!(($where && $what|| ($currentArrayIndex == -1)) && !$passed_ent_id{
  160.         $next findNextMessage($passed_id);
  161.         $prev findPreviousMessage($mbx_response['EXISTS']$passed_id);
  162.         $prev_if_del $prev;
  163.         $next_if_del $next;
  164.         if (!$uid_support && ($auto_expunge || $move_to_trash)) {
  165.             if ($prev_if_del $passed_id{
  166.                 $prev_if_del--;
  167.             }
  168.             if ($next_if_del $passed_id{
  169.                 $next_if_del--;
  170.             }
  171.         }
  172.  
  173.         /* Base is illegal within documents 
  174.         * $location = get_location();
  175.         * echo "<base href=\"$location/\">" . */
  176.         echo '<table cellspacing="0" width="100%" border="0" cellpadding="2">'.
  177.              '<tr>'.
  178.                  "<td bgcolor=\"$color[9]\" width=\"100%\" align=\"center\"><small>";
  179.  
  180.         if ($prev 0){
  181.             echo "<a href=\"read_body.php?passed_id=$prev_if_del&amp;mailbox=$urlMailbox&amp;sort=$sort&amp;startMessage=$startMessage&amp;show_more=0&amp;delete_id=$passed_id\">_("Delete &amp; Prev""</a>" "&nbsp;|&nbsp;\n";
  182.         }
  183.         else {
  184.             echo _("Delete &amp; Prev""&nbsp;|&nbsp;";
  185.         }
  186.         if ($next 0){
  187.             echo "<a href=\"read_body.php?passed_id=$next_if_del&amp;mailbox=$urlMailbox&amp;sort=$sort&amp;startMessage=$startMessage&amp;show_more=0&amp;delete_id=$passed_id\">_("Delete &amp; Next""</a>\n";
  188.         else {
  189.             echo _("Delete &amp; Next");
  190.         }
  191.         echo '</small></td></tr>';
  192.  
  193.         if ($next_if_del 0{
  194.             $next_if_del $prev_if_del;
  195.         }
  196.         if (($delete_move_next_formATtop == 'on'&& ($currloc == 'top')) {
  197.             if ($next_if_del 0{
  198.                 delete_move_next_moveNextForm($next_if_del);
  199.             else {
  200.                 delete_move_next_moveRightMainForm();
  201.             }
  202.         }
  203.         if (($delete_move_next_formATbottom != 'off'&& ($currloc == 'bottom')) {
  204.             if ($next_if_del 0{
  205.                 delete_move_next_moveNextForm($next_if_del);
  206.             else {
  207.                 delete_move_next_moveRightMainForm();
  208.             }
  209.         }
  210.         echo '</table>';
  211.     }
  212. }
  213.  
  214. function get_move_target_list({
  215.     global $imapConnection$lastTargetMailbox;
  216.     if (isset($lastTargetMailbox&& !empty($lastTargetMailbox)) {
  217.         echo sqimap_mailbox_option_list($imapConnectionarray(strtolower($lastTargetMailbox)));
  218.     }
  219.     else {
  220.         echo sqimap_mailbox_option_list($imapConnection);
  221.     }
  222. }
  223.  
  224. function delete_move_next_moveNextForm($next{
  225.  
  226.     global $color$where$what$currentArrayIndex$passed_id,
  227.            $mailbox$sort$startMessage$delete_id$move_id,
  228.            $imapConnection;
  229.  
  230.     $urlMailbox urlencode($mailbox);
  231.  
  232.     echo '<tr>'.
  233.          "<td bgcolor=\"$color[9]\" width=\"100%\" align=\"center\">".
  234.            "<form action=\"read_body.php?mailbox=$urlMailbox&amp;sort=$sort&amp;startMessage=$startMessage&amp;passed_id=$next\" method=\"post\"><small>".
  235.             "<input type=\"hidden\" name=\"show_more\" value=\"0\">".
  236.             "<input type=\"hidden\" name=\"move_id\" value=\"$passed_id\">".
  237.             _("Move to:".
  238.             ' <select name="targetMailbox">';
  239.     echo    '</select> '.
  240.             '<input type="submit" value="' _("Move"'">'.
  241.             '</small>'.
  242.            '</form>'.
  243.          '</td>'.
  244.          '</tr>';
  245. }
  246.  
  247.  
  248.     global $color$where$what$currentArrayIndex$passed_id,
  249.            $mailbox$sort$startMessage$delete_id$move_id,
  250.            $imapConnection;
  251.  
  252.     $urlMailbox urlencode($mailbox);
  253.  
  254.     echo '<tr>' .
  255.             "<td bgcolor=\"$color[9]\" width=\"100%\" align=\"center\">".
  256.             "<form action=\"right_main.php?mailbox=$urlMailbox&amp;sort=$sort&amp;startMessage=$startMessage\" method=\"post\"><small>.
  257.             "<input type=\"hidden\" name=\"move_id\" value=\"$passed_id\">".
  258.             _("Move to:".
  259.             ' <select name="targetMailbox">';
  260.     echo    ' </select>' .
  261.             '<input type=submit value="' _("Move"'">'.
  262.             '</small>'.
  263.          '</form>' .
  264.          '</td>'.
  265.          '</tr>';
  266. }
  267.  
  268.     global $imapConnection$auto_expunge;
  269.  
  270.     sqgetGlobalVar('delete_id'$delete_idSQ_GET);
  271.     sqgetGlobalVar('mailbox'$mailboxSQ_GET);
  272.  
  273.     sqimap_messages_delete($imapConnection$delete_id$delete_id$mailbox);
  274.     if ($auto_expunge{
  275.         delete_move_expunge_from_all($delete_id);
  276.         // sqimap_mailbox_expunge($imapConnection, $mailbox, true);
  277.     }
  278. }
  279.  
  280. function delete_move_next_move({
  281.     global $imapConnection$mailbox$auto_expunge$lastTargetMailbox;
  282.  
  283.     sqgetGlobalVar('move_id'$move_idSQ_POST);
  284.     sqgetGlobalVar('mailbox'$mailboxSQ_FORM);
  285.     sqgetGlobalVar('targetMailbox'$targetMailboxSQ_POST);
  286.  
  287.     // Move message
  288.     sqimap_messages_copy($imapConnection$move_id$move_id$targetMailbox);
  289.     sqimap_messages_flag($imapConnection$move_id$move_id'Deleted'true);
  290.     if ($auto_expunge{
  291.         delete_move_expunge_from_all($move_id);
  292.         // sqimap_mailbox_expunge($imapConnection, $mailbox, true);
  293.     }
  294.  
  295.     if ($targetMailbox != $lastTargetMailbox{
  296.         $lastTargetMailbox $targetMailbox;
  297.         sqsession_register($lastTargetMailbox'lastTargetMailbox');
  298.     }
  299. }
  300.  
  301.     global $username,$data_dir,
  302.         $delete_move_next_t$delete_move_next_formATtop,
  303.         $delete_move_next_b$delete_move_next_formATbottom;
  304.  
  305.     echo "<tr>" html_tag('td',_("Delete/Move/Next Buttons:"),'right','','valign=top'"\n".
  306.          "<td><input type=checkbox name=delete_move_next_ti";
  307.  
  308.     if ($delete_move_next_t == 'on'{
  309.         echo " checked";
  310.     }
  311.     echo '> ' _("Display at top").
  312.          " <input type=checkbox name=delete_move_next_formATtopi";
  313.  
  314.     if ($delete_move_next_formATtop == 'on'{
  315.         echo ' checked';
  316.     }
  317.     echo '> ' _("with move option"'<br>';
  318.  
  319.     echo '<input type=checkbox name=delete_move_next_bi';
  320.     if($delete_move_next_b != 'off'{
  321.         echo ' checked';
  322.     }
  323.     echo '> ' _("Display at bottom".
  324.          '<input type=checkbox name=delete_move_next_formATbottomi';
  325.  
  326.     if ($delete_move_next_formATbottom != 'off'{
  327.         echo ' checked';
  328.     }
  329.     echo '> ' _("with move option"'<br>'.
  330.          "</td></tr>\n";
  331. }
  332.  
  333.  
  334.     global $username,$data_dir;
  335.  
  336.     if sqgetGlobalVar('delete_move_next_ti'$delete_move_next_tiSQ_POST) ) {
  337.         setPref($data_dir$username'delete_move_next_t''on');
  338.     else {
  339.         setPref($data_dir$username'delete_move_next_t'"off");
  340.     }
  341.  
  342.     if sqgetGlobalVar('delete_move_next_formATtopi'$delete_move_next_formATtopiSQ_POST) ) {
  343.         setPref($data_dir$username'delete_move_next_formATtop''on');
  344.     else {
  345.         setPref($data_dir$username'delete_move_next_formATtop'"off");
  346.     }
  347.  
  348.  
  349.     if sqgetGlobalVar('delete_move_next_bi'$delete_move_next_biSQ_POST) ) {
  350.         setPref($data_dir$username'delete_move_next_b''on');
  351.     else {
  352.         setPref($data_dir$username'delete_move_next_b'"off");
  353.     }
  354.  
  355.     if sqgetGlobalVar('delete_move_next_formATbottomi'$delete_move_next_formATbottomiSQ_POST) ) {
  356.         setPref($data_dir$username'delete_move_next_formATbottom''on');
  357.     else {
  358.         setPref($data_dir$username'delete_move_next_formATbottom'"off");
  359.     }
  360. }
  361.  
  362.     global $username,$data_dir,
  363.            $delete_move_next_t$delete_move_next_formATtop,
  364.            $delete_move_next_b$delete_move_next_formATbottom;
  365.  
  366.     $delete_move_next_t getPref($data_dir$username'delete_move_next_t');
  367.     $delete_move_next_b getPref($data_dir$username'delete_move_next_b');
  368.     $delete_move_next_formATtop getPref($data_dir$username'delete_move_next_formATtop');
  369.     $delete_move_next_formATbottom getPref($data_dir$username'delete_move_next_formATbottom');
  370.  
  371. }
  372.  
  373. ?>

Documentation generated on Sat, 07 Oct 2006 16:33:32 +0300 by phpDocumentor 1.3.0RC6