X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=plugins%2Fsent_subfolders%2Fsetup.php;h=a2565c66aae591f8bbff3371602b8ca7ec64e931;hp=4e98bd0a2e2c2a9421a54826d4646ce298eb8136;hb=b11ea636c67e0668939665b415a2205eb25ab98b;hpb=a3439b271e1b5fa7e61362970dbbcc5bfc75e5b1;ds=sidebyside diff --git a/plugins/sent_subfolders/setup.php b/plugins/sent_subfolders/setup.php index 4e98bd0a..a2565c66 100644 --- a/plugins/sent_subfolders/setup.php +++ b/plugins/sent_subfolders/setup.php @@ -61,8 +61,8 @@ function sent_subfolders_check_handleAsSent() { /* Perform the comparison. */ $handleAsSent_result = ( $handleAsSent_result - || ($base_str == $mbox_str) - || ($sent_subfolders_base == $args[1]) + || ($base_str == $mbox_str) + || ($sent_subfolders_base == $args[1]) ); } } @@ -73,7 +73,7 @@ function sent_subfolders_load_prefs() { $use_sent_subfolders = getPref ($data_dir, $username, 'use_sent_subfolders', SMPREF_OFF); - + $sent_subfolders_setting = getPref ($data_dir, $username, 'sent_subfolders_setting', SMPREF_SENT_SUBFOLDERS_DISABLED); @@ -100,9 +100,9 @@ function sent_subfolders_optpage_loadhook_folders() { 'type' => SMOPT_TYPE_STRLIST, 'refresh' => SMOPT_REFRESH_FOLDERLIST, 'posvals' => array(SMPREF_SENT_SUBFOLDERS_DISABLED => _("Disabled"), - SMPREF_SENT_SUBFOLDERS_MONTHLY => _("Monthly"), - SMPREF_SENT_SUBFOLDERS_QUARTERLY => _("Quarterly"), - SMPREF_SENT_SUBFOLDERS_YEARLY => _("Yearly")), + SMPREF_SENT_SUBFOLDERS_MONTHLY => _("Monthly"), + SMPREF_SENT_SUBFOLDERS_QUARTERLY => _("Quarterly"), + SMPREF_SENT_SUBFOLDERS_YEARLY => _("Yearly")), 'save' => 'save_option_sent_subfolders_setting' ); @@ -147,42 +147,58 @@ function sent_subfolders_update_sentfolder() { global $sent_folder, $delimiter, $auto_create_special, $auto_create_done; global $sent_subfolders_base, $sent_subfolders_setting; global $username, $data_dir, $key, $imapServerAddress, $imapPort; - global $use_sent_subfolders, $move_to_sent; + global $use_sent_subfolders, $move_to_sent, $imap_server_type; - if ($use_sent_subfolders && $move_to_sent) { + if ($use_sent_subfolders || $move_to_sent) { $year = date('Y'); $month = date('m'); $quarter = sent_subfolder_getQuarter($month); + /* + Regarding the structure we've got three main possibilities. + One sent holder. level 0. + Multiple year holders with messages in it. level 1. + Multiple year folders with holders in it. level 2. + */ + + if( $imap_server_type == 'uw' ) { + $cnd_delimiter = ''; + } else { + $cnd_delimiter = $delimiter; + } + switch ($sent_subfolders_setting) { - case SMPREF_SENT_SUBFOLDERS_YEARLY: - $sent_subfolder = $sent_subfolders_base - . $delimiter . $year; - $year_folder = $sent_subfolder; - break; - case SMPREF_SENT_SUBFOLDERS_QUARTERLY: - $sent_subfolder = $sent_subfolders_base - . $delimiter . $year - . $delimiter . $quarter; - $year_folder = $sent_subfolders_base - . $delimiter . $year; - break; - case SMPREF_SENT_SUBFOLDERS_MONTHLY: - $sent_subfolder = $sent_subfolders_base - . $delimiter . $year - . $delimiter . $month; - $year_folder = $sent_subfolders_base - . $delimiter . $year; - break; - case SMPREF_SENT_SUBFOLDERS_DISABLED: - default: - $sent_subfolder = $sent_folder; - $year_folder = $sent_folder; + case SMPREF_SENT_SUBFOLDERS_YEARLY: + $level = 1; + $sent_subfolder = $sent_subfolders_base . $cnd_delimiter + . $year; + break; + case SMPREF_SENT_SUBFOLDERS_QUARTERLY: + $level = 2; + $sent_subfolder = $sent_subfolders_base . $cnd_delimiter + . $year + . $delimiter . $quarter; + $year_folder = $sent_subfolders_base + . $year; + break; + case SMPREF_SENT_SUBFOLDERS_MONTHLY: + $level = 2; + $sent_subfolder = $sent_subfolders_base . $cnd_delimiter + . $year + . $delimiter . $month; + $year_folder = $sent_subfolders_base . $year; + break; + case SMPREF_SENT_SUBFOLDERS_DISABLED: + default: + $level = 0; + $sent_subfolder = $sent_folder; + $year_folder = $sent_folder; } /* If this folder is NOT the current sent folder, update stuff. */ if ($sent_subfolder != $sent_folder) { /* First, update the sent folder. */ + setPref($data_dir, $username, 'sent_folder', $sent_subfolder); setPref($data_dir, $username, 'move_to_sent', SMPREF_ON); $sent_folder = $sent_subfolder; @@ -193,19 +209,19 @@ function sent_subfolders_update_sentfolder() { /* Create the imap connection. */ $ic = sqimap_login ($username, $key, $imapServerAddress, $imapPort, 10); - + /* Auto-create the year folder, if it does not yet exist. */ if (!sqimap_mailbox_exists($ic, $year_folder)) { - sqimap_mailbox_create($ic, $year_folder, ''); + sqimap_mailbox_create($ic, $year_folder, ($level==1)?'':'noselect'); } else if (!sqimap_mailbox_is_subscribed($ic, $year_folder)) { sqimap_subscribe($ic, $year_folder); } - + /* Auto-create the subfolder, if it does not yet exist. */ if (!sqimap_mailbox_exists($ic, $sent_folder)) { sqimap_mailbox_create($ic, $sent_folder, ''); - } else if (!sqimap_mailbox_is_subscribed($ic, $sent_folder)) { - sqimap_subscribe($ic, $sent_folder); + } else if (!sqimap_mailbox_is_subscribed($ic, $sent_subfolder)) { + sqimap_subscribe($ic, $sent_subfolder); } /* Close the imap connection. */ @@ -219,17 +235,26 @@ function sent_subfolder_getQuarter($month) { switch ($month) { case '01': case '02': - case '03': $result = '1'; break; + case '03': + $result = '1'; + break; case '04': case '05': - case '06': $result = '2'; break; + case '06': + $result = '2'; + break; case '07': case '08': - case '09': $result = '3'; break; + case '09': + $result = '3'; + break; case '10': case '11': - case '12': $result = '4'; break; - default: $result = 'ERR'; + case '12': + $result = '4'; + break; + default: + $result = 'ERR'; } /* Return the current quarter. */