Exemplo n.º 1
0
 /**
  * @param Folder $folder
  * @return bool
  */
 function DeleteFolder(&$folder)
 {
     $result = $this->DbStorage->Connect();
     if (!$result) {
         return false;
     }
     switch ($this->_account->MailProtocol) {
         case MAILPROTOCOL_WMSERVER:
         case MAILPROTOCOL_IMAP4:
             if ($folder->SyncType != FOLDERSYNC_DontSync) {
                 if ($this->MailStorage->Connect()) {
                     if ($this->MailStorage->DeleteFolder($folder)) {
                         if (USE_LSUB) {
                             $this->MailStorage->SubscribeFolder($folder, true);
                         }
                         if (USE_DB) {
                             $result &= $this->DbStorage->DeleteFolderFilters($folder->IdDb, $this->_account->Id);
                             $result &= $this->DbStorage->DeleteFolder($folder);
                         }
                         return $result;
                     }
                 }
             } else {
                 $result &= $this->DbStorage->DeleteFolderFilters($folder->IdDb, $this->_account->Id);
                 $result &= $this->DbStorage->DeleteFolder($folder);
                 return $result;
             }
             return false;
         case MAILPROTOCOL_POP3:
             $rootFolders =& $this->GetFolders();
             $folders = $rootFolders->CreateFolderListFromTree();
             foreach (array_keys($folders->Instance()) as $key) {
                 $fld =& $folders->Get($key);
                 if ($fld->IdDb == $folder->IdDb) {
                     $this->_deletePop3FolderTree($fld, $result);
                     return $result;
                 }
                 unset($fld);
             }
             return true;
     }
     return false;
 }