| | |
| | | $PRINT_MODE = $RCMAIL->action=='print' ? TRUE : FALSE; |
| | | |
| | | // similar code as in program/steps/mail/get.inc |
| | | if ($_GET['_uid']) { |
| | | $MESSAGE = new rcube_message(get_input_value('_uid', RCUBE_INPUT_GET)); |
| | | if ($uid = get_input_value('_uid', RCUBE_INPUT_GET)) { |
| | | $MESSAGE = new rcube_message($uid); |
| | | |
| | | // if message not found (wrong UID)... |
| | | if (empty($MESSAGE->headers)) { |
| | | $OUTPUT->show_message('messageopenerror', 'error'); |
| | | // ... display error or preview page |
| | | if ($RCMAIL->action=='preview' && $OUTPUT->template_exists('messageerror')) |
| | | $OUTPUT->send('messageerror'); |
| | | else if ($RCMAIL->action=='preview' && $OUTPUT->template_exists('messagepreview')) |
| | | $OUTPUT->send('messagepreview'); |
| | | // ... go back to the list |
| | | else { |
| | | rcmail_overwrite_action(''); |
| | | return; |
| | | } |
| | | rcmail_message_error($uid); |
| | | } |
| | | |
| | | send_nocacheing_headers(); |
| | | |
| | | $mbox_name = $IMAP->get_mailbox_name(); |
| | | |
| | | |
| | | // show images? |
| | | rcmail_check_safe($MESSAGE); |
| | | |
| | |
| | | $IMAP->set_charset($MESSAGE->headers->charset); |
| | | |
| | | $OUTPUT->set_pagetitle($MESSAGE->subject); |
| | | |
| | | |
| | | // give message uid to the client |
| | | $OUTPUT->set_env('uid', $MESSAGE->uid); |
| | | // set environement |
| | |
| | | |
| | | if (!$OUTPUT->ajax_call) |
| | | $OUTPUT->add_label('checkingmail', 'deletemessage', 'movemessagetotrash', 'movingmessage'); |
| | | |
| | | |
| | | // check for unset disposition notification |
| | | if ($MESSAGE->headers->mdn_to && |
| | | !$MESSAGE->headers->mdn_sent && !$MESSAGE->headers->seen && |
| | |
| | | $next = $prev = $first = $last = -1; |
| | | |
| | | if ($_SESSION['sort_col'] == 'date' && $_SESSION['sort_order'] != 'DESC' |
| | | && empty($_REQUEST['_search']) && !$IMAP->skip_deleted) |
| | | && empty($_REQUEST['_search']) && !$CONFIG['skip_deleted'] && !$IMAP->threading) |
| | | { |
| | | // this assumes that we are sorted by date_DESC |
| | | $cnt = $IMAP->messagecount(); |
| | |
| | | $OUTPUT->set_env('next_uid', $next); |
| | | if ($last > 0) |
| | | $OUTPUT->set_env('last_uid', $last); |
| | | |
| | | // Don't need a real messages count value |
| | | $OUTPUT->set_env('messagecount', 1); |
| | | } |
| | | |
| | | if (!$MESSAGE->headers->seen) |
| | | if (!$MESSAGE->headers->seen && ($RCMAIL->action == 'show' || ($RCMAIL->action == 'preview' && intval($CONFIG['preview_pane_mark_read']) == 0))) |
| | | $RCMAIL->plugins->exec_hook('message_read', array('uid' => $MESSAGE->uid, |
| | | 'mailbox' => $IMAP->mailbox, 'message' => $MESSAGE)); |
| | | 'mailbox' => $mbox_name, 'message' => $MESSAGE)); |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | |
| | | // mark message as read |
| | | if ($MESSAGE && $MESSAGE->headers && !$MESSAGE->headers->seen) |
| | | $IMAP->set_flag($MESSAGE->uid, 'SEEN'); |
| | | if ($MESSAGE && $MESSAGE->headers && !$MESSAGE->headers->seen && |
| | | ($RCMAIL->action == 'show' || ($RCMAIL->action == 'preview' && intval($CONFIG['preview_pane_mark_read']) == 0))) |
| | | { |
| | | if ($IMAP->set_flag($MESSAGE->uid, 'SEEN') && $_SESSION['unseen_count'][$mbox_name]) |
| | | $_SESSION['unseen_count'][$mbox_name] -= 1; |
| | | } |
| | | |
| | | exit; |
| | | |
| | | ?> |
| | | |