/** * Given an old and new folder name, renames the folder. */ function folders_rename_do($imapConnection, $delimiter, $orig, $old_name, $new_name) { folders_checkname($imapConnection, $new_name, $delimiter); $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) { 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); } return; }
sqgetGlobalVar('username', $username, SQ_SESSION); sqgetGlobalVar('delimiter', $delimiter, SQ_SESSION); sqgetGlobalVar('onetimepad', $onetimepad, SQ_SESSION); sqgetGlobalVar('orig', $orig, SQ_POST); sqgetGlobalVar('old_name', $old_name, SQ_POST); sqgetGlobalVar('new_name', $new_name, SQ_POST); /* end globals */ $new_name = trim($new_name); if (substr_count($new_name, '"') || substr_count($new_name, "\\") || substr_count($new_name, $delimiter) || $new_name == '') { displayPageHeader($color, 'None'); plain_error_message(_("Illegal folder name. Please select a different name.") . '<br /><a href="../src/folders.php">' . _("Click here to go back") . '</a>.', $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)) {
sqgetGlobalVar('username', $username, SQ_SESSION); sqgetGlobalVar('onetimepad', $onetimepad, SQ_SESSION); sqgetGlobalVar('delimiter', $delimiter, SQ_SESSION); sqgetGlobalVar('folder_name', $folder_name, SQ_POST); sqgetGlobalVar('subfolder', $subfolder, SQ_POST); if (!sqgetGlobalVar('contain_subs', $contain_subs, SQ_POST)) { unset($contain_subs); } /* end of get globals */ $folder_name = trim($folder_name); if (substr_count($folder_name, '"') || substr_count($folder_name, "\\") || substr_count($folder_name, $delimiter) || $folder_name == '') { displayPageHeader($color, 'None'); plain_error_message(_("Illegal folder name. Please select a different name.") . '<br /><a href="../src/folders.php">' . _("Click here to go back") . '</a>.', $color); exit; } $folder_name = imap_utf7_encode_local($folder_name); if (isset($contain_subs) && $contain_subs) { $folder_type = 'noselect'; } else { $folder_type = ''; } if ($folder_prefix && substr($folder_prefix, -1) != $delimiter) { $folder_prefix = $folder_prefix . $delimiter; } if ($folder_prefix && substr($subfolder, 0, strlen($folder_prefix)) != $folder_prefix) { $subfolder_orig = $subfolder; $subfolder = $folder_prefix . $subfolder; } else { $subfolder_orig = $subfolder; } $imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0);