| | |
| | | // set current mailbox and some other vars in client environment |
| | | $OUTPUT->set_env('mailbox', $mbox_name); |
| | | $OUTPUT->set_env('pagesize', $RCMAIL->storage->get_pagesize()); |
| | | $OUTPUT->set_env('current_page', max(1, $_SESSION['page'])); |
| | | $OUTPUT->set_env('delimiter', $delimiter); |
| | | $OUTPUT->set_env('threading', $threading); |
| | | $OUTPUT->set_env('threads', $threading || $RCMAIL->storage->get_capability('THREAD')); |
| | | $OUTPUT->set_env('reply_all_mode', (int) $RCMAIL->config->get('reply_all_mode')); |
| | | $OUTPUT->set_env('preview_pane_mark_read', $RCMAIL->config->get('preview_pane_mark_read', 0)); |
| | | $OUTPUT->set_env('preview_pane_mark_read', (int) $RCMAIL->config->get('preview_pane_mark_read')); |
| | | |
| | | if ($RCMAIL->storage->get_capability('QUOTA')) { |
| | | $OUTPUT->set_env('quota', true); |
| | |
| | | $mbox = strlen($_SESSION['mbox']) ? $_SESSION['mbox'] : 'INBOX'; |
| | | } |
| | | |
| | | if ($RCMAIL->action == 'list') { |
| | | // we handle 'page' argument on 'list' and 'getunread' to prevent from |
| | | // race condition and unintentional page overwrite in session |
| | | if ($RCMAIL->action == 'list' || $RCMAIL->action == 'getunread') { |
| | | if (!($page = intval($_GET['_page']))) { |
| | | $page = $_SESSION['page'] ? $_SESSION['page'] : 1; |
| | | $page = $_SESSION['page'] ?: 1; |
| | | } |
| | | |
| | | $_SESSION['page'] = $page; |
| | |
| | | |
| | | // set default sort col/order to session |
| | | if (!isset($_SESSION['sort_col'])) { |
| | | $_SESSION['sort_col'] = $message_sort_col ? $message_sort_col : ''; |
| | | $_SESSION['sort_col'] = $message_sort_col ?: ''; |
| | | } |
| | | if (!isset($_SESSION['sort_order'])) { |
| | | $_SESSION['sort_order'] = strtoupper($message_sort_order) == 'ASC' ? 'ASC' : 'DESC'; |
| | |
| | | break; |
| | | |
| | | case 'style': |
| | | // Crazy big styles may freeze the browser (#1490539) |
| | | // remove content with more than 5k lines |
| | | if (substr_count($content, "\n") > 5000) { |
| | | $out = ''; |
| | | break; |
| | | } |
| | | |
| | | // decode all escaped entities and reduce to ascii strings |
| | | $stripped = preg_replace('/[^a-zA-Z\(:;]/', '', rcube_utils::xss_entity_decode($content)); |
| | | |
| | |
| | | |
| | | // fetch part body |
| | | $body = $MESSAGE->get_part_body($part->mime_id, true); |
| | | |
| | | // extract headers from message/rfc822 parts |
| | | if ($part->mimetype == 'message/rfc822') { |
| | | $msgpart = rcube_mime::parse_message($body); |
| | | if (!empty($msgpart->headers)) { |
| | | $part = $msgpart; |
| | | $out .= html::div('message-partheaders', rcmail_message_headers(sizeof($header_attrib) ? $header_attrib : null, $part->headers)); |
| | | } |
| | | } |
| | | |
| | | // message is cached but not exists (#1485443), or other error |
| | | if ($body === false) { |
| | |
| | | $content = rcube::Q($name ? sprintf('%s <%s>', $name, $mailto) : $mailto); |
| | | } |
| | | else { |
| | | $content = rcube::Q($name ? $name : $mailto); |
| | | $content = rcube::Q($name ?: $mailto); |
| | | $attrs['title'] = $mailto; |
| | | } |
| | | |
| | |
| | | } |
| | | else { |
| | | $address = html::span(array('title' => $mailto, 'class' => "rcmContactAddress"), |
| | | rcube::Q($name ? $name : $mailto)); |
| | | rcube::Q($name ?: $mailto)); |
| | | } |
| | | |
| | | if ($addicon && $_SESSION['writeable_abook']) { |