/** * @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; }
/** * @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; }