Source for file empty_trash.php

Documentation is available at empty_trash.php

  1. <?php
  2.  
  3. /**
  4.  * empty_trash.php
  5.  *
  6.  * Handles deleting messages from the trash folder without
  7.  * deleting subfolders.
  8.  *
  9.  * @copyright &copy; 1999-2006 The SquirrelMail Project Team
  10.  * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  11.  * @version $Id: empty_trash.php,v 1.44.2.8 2006/04/14 22:27:08 jervfors Exp $
  12.  * @package squirrelmail
  13.  */
  14.  
  15. /**
  16.  * Path for SquirrelMail required files.
  17.  * @ignore
  18.  */
  19. define('SM_PATH','../');
  20.  
  21. /* SquirrelMail required files. */
  22. require_once(SM_PATH 'include/validate.php');
  23. require_once(SM_PATH 'functions/display_messages.php');
  24. require_once(SM_PATH 'functions/imap.php');
  25. require_once(SM_PATH 'functions/tree.php');
  26.  
  27. /* get those globals */
  28.  
  29. sqgetGlobalVar('username'$usernameSQ_SESSION);
  30. sqgetGlobalVar('key'$keySQ_COOKIE);
  31. sqgetGlobalVar('delimiter'$delimiterSQ_SESSION);
  32. sqgetGlobalVar('onetimepad'$onetimepadSQ_SESSION);
  33.  
  34. /* finished globals */
  35.  
  36. $imap_stream sqimap_login($username$key$imapServerAddress$imapPort0);
  37.  
  38. sqimap_mailbox_list($imap_stream);
  39.  
  40. $mailbox $trash_folder;
  41. $boxes sqimap_mailbox_list($imap_stream);
  42.  
  43. /*
  44.  * According to RFC2060, a DELETE command should NOT remove inferiors (sub folders)
  45.  *    so lets go through the list of subfolders and remove them before removing the
  46.  *    parent.
  47.  */
  48.  
  49. /** First create the top node in the tree **/
  50. $numboxes count($boxes);
  51. for ($i 0$i $numboxes$i++{
  52.     if (($boxes[$i]['unformatted'== $mailbox&& (strlen($boxes[$i]['unformatted']== strlen($mailbox))) {
  53.         $foldersTree[0]['value'$mailbox;
  54.         $foldersTree[0]['doIHaveChildren'false;
  55.         continue;
  56.     }
  57. }
  58. /*
  59.  * Now create the nodes for subfolders of the parent folder
  60.  * You can tell that it is a subfolder by tacking the mailbox delimiter
  61.  *    on the end of the $mailbox string, and compare to that.
  62.  */
  63. $j 0;
  64. for ($i 0$i $numboxes$i++{
  65.     if (substr($boxes[$i]['unformatted']0strlen($mailbox $delimiter)) == ($mailbox $delimiter)) {
  66.         addChildNodeToTree($boxes[$i]['unformatted']$boxes[$i]['unformatted-dm']$foldersTree);
  67.     }
  68. }
  69.  
  70. // now lets go through the tree and delete the folders
  71. walkTreeInPreOrderEmptyTrash(0$imap_stream$foldersTree);
  72. sqimap_logout($imap_stream);
  73.  
  74. // close session properly before redirecting
  75.  
  76. $location get_location();
  77. // force_refresh = 1 in case trash contains deleted mailboxes
  78. header ("Location$location/left_main.php?force_refresh=1");
  79.  
  80. ?>

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