X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Ffolders_rename_do.php;h=c11c2123f63bfcd95dfff54315e32a627fcdf0af;hb=d69119eb8350e38dcd6774a678d90477315f22ac;hp=92ced667d7baa7cef6c2190da0b710158be7d72f;hpb=be69e508438a39ab2af212305a609fbbf6f9c71b;p=squirrelmail.git
diff --git a/src/folders_rename_do.php b/src/folders_rename_do.php
index 92ced667..c11c2123 100644
--- a/src/folders_rename_do.php
+++ b/src/folders_rename_do.php
@@ -1,49 +1,82 @@
-
- include("../config/config.php");
- include("../functions/strings.php");
- include("../functions/page_header.php");
- include("../functions/imap.php");
- include("../functions/mailbox.php");
-
- $imapConnection = loginToImapServer($username, $key, $imapServerAddress);
- selectMailbox($imapConnection, $orig, $numMessages);
- getFolderList($imapConnection, $boxesFormatted, $boxesUnformatted);
-
- $mailbox = "$subfolder.$new_name";
- $old_name = substr($orig, strrpos($orig, ".")+1, strlen($orig));
- $old_parent = substr($orig, 0, strrpos($orig, "."));
-
- for ($i = 0; $i < count($boxesUnformatted); $i++) {
- if (substr($boxesUnformatted[$i], 0, strlen($orig)) == $orig) {
- $after = substr($boxesUnformatted[$i], strlen($orig)+1, strlen($boxesUnformatted[$i]));
- selectMailbox($imapConnection, $boxesUnformatted[$i], $numMessages);
- if (strlen($after) > 0) {
- createFolder($imapConnection, "$mailbox.$after");
- if ($numMessages > 0)
- $success = copyMessages($imapConnection, 1, $numMessages, "$mailbox.$after");
- else
- $success = true;
-
- if ($success == true)
- removeFolder($imapConnection, "$boxesUnformatted[$i]");
- }
- else {
- createFolder($imapConnection, "$mailbox");
- if ($numMessages > 0)
- $success = copyMessages($imapConnection, 1, $numMessages, "$mailbox");
- else
- $success = true;
-
- if ($success == true)
- removeFolder($imapConnection, "$boxesUnformatted[$i]");
- }
- }
- }
-
- /** Log out this session **/
- fputs($imapConnection, "1 logout");
-
- echo "
Return";
-?>
+'._("Click here to go back").'.', $color);
+
+ exit;
+}
+$orig = imap_utf7_encode_local($orig);
+$old_name = imap_utf7_encode_local($old_name);
+$new_name = imap_utf7_encode_local($new_name);
+if ($old_name <> $new_name) {
+
+ $imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0);
+
+ if (strpos($orig, $delimiter)) {
+ $old_dir = substr($orig, 0, strrpos($orig, $delimiter));
+ } else {
+ $old_dir = '';
+ }
+
+ if ($old_dir != '') {
+ $newone = $old_dir . $delimiter . $new_name;
+ } else {
+ $newone = $new_name;
+ }
+
+ // Renaming a folder doesn't rename the folder but leaves you unsubscribed
+ // at least on Cyrus IMAP servers.
+ if (isset($isfolder)) {
+ $newone = $newone.$delimiter;
+ $orig = $orig.$delimiter;
+ }
+ sqimap_mailbox_rename( $imapConnection, $orig, $newone );
+
+ // Log out this session
+ sqimap_logout($imapConnection);
+
+}
+
+header ('Location: ' . get_location() . '/folders.php?success=rename');
+
+?>