1)) { /* Chop up the folder strings as needed. */ $base_str = $sent_subfolders_base . $delimiter; $mbox_str = substr($args[1], 0, strlen($base_str)); /* Perform the comparison. */ $handleAsSent_result = ( $handleAsSent_result || ($base_str == $mbox_str) || ($sent_subfolders_base == $args[1]) ); } } function sent_subfolders_load_prefs() { global $use_sent_subfolders; global $sent_subfolders_setting, $sent_subfolders_base; $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); $sent_subfolders_base = getPref ($data_dir, $username, 'sent_subfolders_base', SMPREF_NONE); } function sent_subfolders_optpage_loadhook_folders() { global $optpage_data, $username, $key, $imapServerAddress, $imapPort; /* Get some imap data we need later. */ $imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0); $boxes = sqimap_mailbox_list($imapConnection); sqimap_logout($imapConnection); /* Load the Sent Subfolder Options into an array. */ $optgrp = _("Sent Subfolders Options"); $optvals = array(); $optvals[] = array( 'name' => 'sent_subfolders_setting', 'caption' => _("Use Sent Subfolders"), '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")), 'save' => 'save_option_sent_subfolders_setting' ); $sent_subfolders_base_values = array(); foreach ($boxes as $folder) { if (strtolower($folder['unformatted']) != 'inbox') { $real_value = $folder['unformatted-dm']; $disp_value = str_replace(' ', ' ', $folder['formatted']); $sent_subfolders_base_values[$real_value] = $disp_value; } } $optvals[] = array( 'name' => 'sent_subfolders_base', 'caption' => _("Base Sent Folder"), 'type' => SMOPT_TYPE_STRLIST, 'refresh' => SMOPT_REFRESH_FOLDERLIST, 'posvals' => $sent_subfolders_base_values ); /* Add our option data to the global array. */ $optpage_data['grps'][SMOPT_GRP_SENT_SUBFOLDERS] = $optgrp; $optpage_data['vals'][SMOPT_GRP_SENT_SUBFOLDERS] = $optvals; } function save_option_sent_subfolders_setting($option) { global $data_dir, $username, $use_sent_subfolders; /* Set use_sent_subfolders as either on or off. */ if ($option->new_value == SMPREF_SENT_SUBFOLDERS_DISABLED) { setPref($data_dir, $username, 'use_sent_subfolders', SMPREF_OFF); } else { setPref($data_dir, $username, 'use_sent_subfolders', SMPREF_ON); setPref($data_dir, $username, 'move_to_sent', SMPREF_ON); } /* Now just save the option as normal. */ save_option($option); } 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; if ($use_sent_subfolders && $move_to_sent) { $year = date('Y'); $month = date('m'); $quarter = sent_subfolder_getQuarter($month); 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; } /* 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; $move_to_sent = SMPREF_ON; /* Auto-create folders, if they do not yet exist. */ if ($sent_folder != 'none') { /* 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, ''); } 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); } /* Close the imap connection. */ sqimap_logout($ic); } } } } function sent_subfolder_getQuarter($month) { switch ($month) { case '01': case '02': case '03': $result = '1'; break; case '04': case '05': case '06': $result = '2'; break; case '07': case '08': case '09': $result = '3'; break; case '10': case '11': case '12': $result = '4'; break; default: $result = 'ERR'; } /* Return the current quarter. */ return ('Q' . $result); } ?>