X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=functions%2Ffolder_manip.php;h=4b3971c129cd93dff1421f9478530ceaed9e7636;hb=bb40a9c1d9766ba4212a3350fbd702af3e2d06ee;hp=46ba4b9d8469beddabd0e1ca6eb4759830d69fcb;hpb=32aa007421fc0e1b8620d091a804d61d15c74ba6;p=squirrelmail.git
diff --git a/functions/folder_manip.php b/functions/folder_manip.php
index 46ba4b9d..4b3971c1 100644
--- a/functions/folder_manip.php
+++ b/functions/folder_manip.php
@@ -1,19 +1,18 @@
+ * @copyright 1999-2011 The SquirrelMail Project Team
+ * @license http://opensource.org/licenses/gpl-license.php GNU Public License
+ * @version $Id$
+ * @package squirrelmail
+ * @see folders.php
+ */
/**
@@ -25,18 +24,29 @@ function folders_checkname($imapConnection, $folder_name, $delimiter)
{
if (substr_count($folder_name, '"') || substr_count($folder_name, "\\") ||
substr_count($folder_name, $delimiter) || ($folder_name == '')) {
-
- global $color;
- plain_error_message(_("Illegal folder name. Please select a different name.").
- '
'._("Click here to go back").'.', $color);
-
+
+ global $color, $oTemplate;
+ error_box(_("Illegal folder name.") . "
\n" .
+ sprintf(_("The name may not contain any of the following: %s"), '" \\ '.$delimiter.'')
+ . "
\n" .
+ _("Please select a different name.").
+ '
'.
+ _("Click here to go back") . '.');
+
sqimap_logout($imapConnection);
- exit;
+ $oTemplate->display('footer.tpl');
+ exit;
}
}
/**
* Called from folders.php to create a new folder.
+ * @param stream $imapConnection imap connection resource
+ * @param string $delimiter delimiter
+ * @param string $folder_name new folder name
+ * @param string $subfolder folder that stores new folder
+ * @param string $contain_subs if not empty, creates folder that can store subfolders
+ * @since 1.5.1
*/
function folders_create ($imapConnection, $delimiter, $folder_name, $subfolder, $contain_subs)
{
@@ -45,9 +55,11 @@ function folders_create ($imapConnection, $delimiter, $folder_name, $subfolder,
global $folder_prefix;
$folder_name = imap_utf7_encode_local($folder_name);
-
+
if ( ! empty($contain_subs) ) {
- $folder_name = $folder_name . $delimiter;
+ $folder_type = 'noselect';
+ } else {
+ $folder_type = '';
}
if ($folder_prefix && (substr($folder_prefix, -1) != $delimiter)) {
@@ -61,9 +73,9 @@ function folders_create ($imapConnection, $delimiter, $folder_name, $subfolder,
}
if (trim($subfolder_orig) == '') {
- sqimap_mailbox_create ($imapConnection, $folder_prefix.$folder_name, '');
+ sqimap_mailbox_create ($imapConnection, $folder_prefix.$folder_name, $folder_type);
} else {
- sqimap_mailbox_create ($imapConnection, $subfolder.$delimiter.$folder_name, '');
+ sqimap_mailbox_create ($imapConnection, $subfolder.$delimiter.$folder_name, $folder_type);
}
return;
@@ -74,12 +86,13 @@ function folders_create ($imapConnection, $delimiter, $folder_name, $subfolder,
* folder should be renamed to.
*/
function folders_rename_getname ($imapConnection, $delimiter, $old) {
- global $color;
+ global $color, $default_folder_prefix, $oTemplate;
if ( $old == '' ) {
plain_error_message(_("You have not selected a folder to rename. Please do so.").
'
'._("Click here to go back").'.', $color);
- sqimap_logout($imapConnection);
+ sqimap_logout($imapConnection);
+ $oTemplate->display('footer.tpl');
exit;
}
@@ -93,36 +106,32 @@ function folders_rename_getname ($imapConnection, $delimiter, $old) {
$old = imap_utf7_decode_local($old);
if (strpos($old, $delimiter)) {
- $old_name = substr($old, strrpos($old, $delimiter)+1, strlen($old));
- $old_parent = substr($old, 0, strrpos($old, $delimiter));
+ $old_name = substr($old, strrpos($old, $delimiter)+1);
+ // hide default prefix (INBOX., mail/ or other)
+ $quoted_prefix=preg_quote($default_folder_prefix,'/');
+ $prefix_length=(preg_match("/^$quoted_prefix/",$old) ? strlen($default_folder_prefix) : 0);
+ if ($prefix_length>strrpos($old, $delimiter)) {
+ $old_parent = '';
+ } else {
+ $old_parent = substr($old, $prefix_length, (strrpos($old, $delimiter)-$prefix_length))
+ . ' ' . $delimiter;
+ }
} else {
$old_name = $old;
$old_parent = '';
}
+
+ sqimap_logout($imapConnection);
- echo '
' .
- html_tag( 'table', '', 'center', '', 'width="95%" border="0"' ) .
- html_tag( 'tr',
- html_tag( 'td', '' . _("Rename a folder") . '', 'center', $color[0] )
- ) .
- html_tag( 'tr' ) .
- html_tag( 'td', '', 'center', $color[4] ) .
- addForm('folders.php').
- addHidden('smaction', 'rename').
- _("New name:").
- '
' . htmlspecialchars($old_parent) . ' ' . htmlspecialchars($delimiter) . '' .
- addInput('new_name', $old_name, 25) . '
' . "\n";
- if ( $isfolder ) {
- echo addHidden('isfolder', 'true');
- }
- echo addHidden('orig', $old).
- addHidden('old_name', $old_name).
- '\n".
- '\n".
- '
';
- echo "\n\n