/**
* Selects a mailbox
- * Before 1.3.0 used more arguments and returned data depended on those argumements.
+ * Before 1.3.0 used more arguments and returned data depended on those arguments.
* @param stream $imap_stream imap connection resource
* @param string $mailbox mailbox name
* @return array results of select command (on success - permanentflags, flags and rights)
*/
function sqimap_mailbox_option_list($imap_stream, $show_selected = 0, $folder_skip = 0, $boxes = 0,
$flag = 'noselect', $use_long_format = false ) {
- global $username, $data_dir;
+ global $username, $data_dir, $translate_special_folders, $sent_folder,
+ $trash_folder, $draft_folder;
+
+ $delimiter = sqimap_get_delimiter($imap_stream);
+
$mbox_options = '';
if ( $use_long_format ) {
$shorten_box_names = 0;
switch ($shorten_box_names)
{
case 2: /* delimited, style = 2 */
- $box2 = str_replace('  ', '. ', htmlspecialchars($boxes_part['formatted']));
+ if ($translate_special_folders && $boxes_part['unformatted-dm']==$sent_folder) {
+ /*
+ * calculate pad level from number of delimiters. do it inside if control in order
+ * to reduce number of calculations. Other folders don't need it.
+ */
+ $pad = str_pad('',7 * (count(explode($delimiter,$boxes_part['unformatted-dm']))-1),'. ');
+ // i18n: Name of Sent folder
+ $box2 = $pad . _("Sent");
+ } elseif ($translate_special_folders && $boxes_part['unformatted-dm']==$trash_folder) {
+ $pad = str_pad('',7 * (count(explode($delimiter,$boxes_part['unformatted-dm']))-1),'. ');
+ // i18n: Name of Trash folder
+ $box2 = $pad . _("Trash");
+ } elseif ($translate_special_folders && $boxes_part['unformatted-dm']==$draft_folder) {
+ $pad = str_pad('',7 * (count(explode($delimiter,$boxes_part['unformatted-dm']))-1),'. ');
+ // i18n: Name of Drafts folder
+ $box2 = $pad . _("Drafts");
+ } else {
+ $box2 = str_replace('  ', '. ', htmlspecialchars($boxes_part['formatted']));
+ }
break;
case 1: /* indent, style = 1 */
- $box2 = str_replace('  ', ' ', htmlspecialchars($boxes_part['formatted']));
+ if ($translate_special_folders && $boxes_part['unformatted-dm']==$sent_folder) {
+ $pad = str_pad('',12 * (count(explode($delimiter,$boxes_part['unformatted-dm']))-1),' ');
+ $box2 = $pad . _("Sent");
+ } elseif ($translate_special_folders && $boxes_part['unformatted-dm']==$trash_folder) {
+ $pad = str_pad('',12 * (count(explode($delimiter,$boxes_part['unformatted-dm']))-1),' ');
+ $box2 = $pad . _("Trash");
+ } elseif ($translate_special_folders && $boxes_part['unformatted-dm']==$draft_folder) {
+ $pad = str_pad('',12 * (count(explode($delimiter,$boxes_part['unformatted-dm']))-1),' ');
+ $box2 = $pad . _("Drafts");
+ } else {
+ $box2 = str_replace('  ', ' ', htmlspecialchars($boxes_part['formatted']));
+ }
break;
default: /* default, long names, style = 0 */
$box2 = str_replace(' ', ' ', htmlspecialchars(imap_utf7_decode_local($boxes_part['unformatted-disp'])));
* @since 1.5.0
*/
function sqimap_utf7_decode_mbx_tree(&$mbx_tree) {
+ global $draft_folder, $sent_folder, $trash_folder, $translate_special_folders;
+
+ /* decode folder name and set mailboxname_sub */
+ if ($translate_special_folders && strtoupper($mbx_tree->mailboxname_full) == 'INBOX') {
+ $mbx_tree->mailboxname_sub = _("INBOX");
+ } elseif ($translate_special_folders && $mbx_tree->mailboxname_full == $draft_folder) {
+ $mbx_tree->mailboxname_sub = _("Drafts");
+ } elseif ($translate_special_folders && $mbx_tree->mailboxname_full == $sent_folder) {
+ $mbx_tree->mailboxname_sub = _("Sent");
+ } elseif ($translate_special_folders && $mbx_tree->mailboxname_full == $trash_folder) {
+ $mbx_tree->mailboxname_sub = _("Trash");
+ } else {
+ $mbx_tree->mailboxname_sub = imap_utf7_decode_local($mbx_tree->mailboxname_sub);
+ }
- if (strtoupper($mbx_tree->mailboxname_full) == 'INBOX')
- $mbx_tree->mailboxname_sub = _("INBOX");
- else
- $mbx_tree->mailboxname_sub = imap_utf7_decode_local($mbx_tree->mailboxname_sub);
- if ($mbx_tree->mbxs) {
- $iCnt = count($mbx_tree->mbxs);
- for ($i=0;$i<$iCnt;++$i) {
+ if ($mbx_tree->mbxs) {
+ $iCnt = count($mbx_tree->mbxs);
+ for ($i=0;$i<$iCnt;++$i) {
sqimap_utf7_decode_mbx_tree($mbx_tree->mbxs[$i]);
- }
- }
+ }
+ }
}
/**
}
return false;
}
-
-?>