$read_ary = sqimap_run_command($imap_stream, "DELETE \"$mailbox\"",
TRUE, $response, $message);
sqimap_unsubscribe ($imap_stream, $mailbox);
+ filter_check($mailbox, 'delete');
}
/***********************************************************************
return false;
}
+/* fix filters when renaming/deleting folders */
+
+function filter_check ($old_folder, $action, $new_folder = 'INBOX') {
+ global $plugins, $data_dir, $username;
+ $filters = array();
+ $count = count($plugins);
+ for ($i=0;$i<$count;$i++) {
+ if ($plugins[$i] == 'filters') {
+ require_once("../plugins/filters/filters.php");
+ $filters = load_filters();
+ break;
+ }
+ }
+ if (empty($filters)) {
+ return;
+ }
+ $filter_count = count($filters);
+ $p=0;
+ for ($i=0;$i<$filter_count;$i++) {
+ if ($old_folder == $filters[$i]['folder']) {
+ if ($action == 'rename') {
+ $filters[$i]['folder'] = $new_folder;
+ setPref($data_dir, $username, "filter".$i, $filters[$i]['where'].",".$filters[$i]['what'].",".$new_folder);
+ }
+ elseif ($action == 'delete') {
+ remove_filter($p);
+ $p = $p-1;
+ }
+ }
+ $p++;
+ }
+}
+
+
/*
Renames a mailbox
*/
function sqimap_mailbox_rename( $imap_stream, $old_name, $new_name ) {
if ( $old_name <> $new_name ) {
-
global $delimiter, $imap_server_type;
-
if ( substr( $old_name, -1 ) == $delimiter ) {
$old_name = substr( $old_name, 0, strlen( $old_name ) - 1 );
$new_name = substr( $new_name, 0, strlen( $new_name ) - 1 );
TRUE, $response, $message);
sqimap_unsubscribe($imap_stream, $old_name.$postfix);
sqimap_subscribe($imap_stream, $new_name.$postfix);
+ filter_check($old_name, 'rename', $new_name);
$l = strlen( $old_name ) + 1;
$p = 'unformatted';
foreach ( $boxesall as $box ) {
}
sqimap_unsubscribe($imap_stream, $box[$p]);
sqimap_subscribe($imap_stream, $new_sub);
+ filter_check($box[$p], 'rename', $new_sub);
}
}
}