예제 #1
0
 /**
  * @param Folder $folder
  * @param string $newName
  * @return bool
  */
 function RenameFolder(&$folder, $newName, $delimiter)
 {
     $newName = str_replace($delimiter, '', $newName);
     // $newName = str_replace('&', '', $newName); bug in UTF-7-imap fix
     $pos = strrpos($folder->FullName, $delimiter);
     if ($pos === false) {
         $newFullName = $newName;
     } else {
         $folderParent = substr($folder->FullName, 0, $pos);
         $newFullName = $folderParent . $delimiter . $newName;
     }
     $result = true;
     $result &= $this->DbStorage->Connect() && $this->DbStorage->RenameFolder($folder, $newFullName);
     $fs =& new FileSystem(INI_DIR . '/mail', $this->_account->Email, $this->_account->Id);
     if ($fs->IsFolderExist($folder->FullName)) {
         $result &= $fs->MoveSubFolders($folder->FullName, $newFullName);
     }
     if ($this->_account->MailProtocol == MAILPROTOCOL_IMAP4 && $folder->SyncType != FOLDERSYNC_DontSync) {
         $result &= $this->MailStorage->Connect() && $this->MailStorage->RenameFolder($folder, $newFullName);
     }
     return $result;
 }
예제 #2
0
 /**
  * @param Folder $folder
  * @param string $newName
  * @param string $delimiter
  * @param array $aLsubFolder
  * @return bool
  */
 function RenameFolder(&$folder, $newName, $delimiter, $aLsubFolder)
 {
     $newName = str_replace($delimiter, '', $newName);
     $newFullName = $newName;
     /* $newName = str_replace('&', '', $newName); bug in UTF-7-imap fix */
     $pos = strrpos($folder->FullName, $delimiter);
     if (false !== $pos) {
         $newFullName = substr($folder->FullName, 0, $pos) . $delimiter . $newName;
     }
     $result = true;
     if (USE_DB) {
         $result &= $this->DbStorage->Connect() && $this->DbStorage->RenameFolder($folder, $newFullName);
     }
     $fs = new FileSystem(INI_DIR . '/mail', strtolower($this->_account->Email), $this->_account->Id);
     if ($result && $fs->IsFolderExist($folder->FullName)) {
         $result &= $fs->MoveSubFolders($folder->FullName, $newFullName);
     }
     if ($result && $this->_account->MailProtocol != MAILPROTOCOL_POP3 && $folder->SyncType != FOLDERSYNC_DontSync) {
         $result &= $this->MailStorage->Connect() && $this->MailStorage->RenameFolder($folder, $newFullName, $aLsubFolder, $delimiter);
     }
     return $result;
 }