| | |
| | | $OUTPUT->set_env('search_request', $search_request); |
| | | } |
| | | |
| | | $search_mods = $RCMAIL->config->get('search_mods', $SEARCH_MODS_DEFAULT); |
| | | $OUTPUT->set_env('search_mods', $search_mods); |
| | | $search_mods = $RCMAIL->config->get('search_mods', $SEARCH_MODS_DEFAULT); |
| | | $OUTPUT->set_env('search_mods', $search_mods); |
| | | } |
| | | |
| | | $threading = (bool) $RCMAIL->storage->get_threading(); |
| | |
| | | $OUTPUT->set_env('drafts_mailbox', $CONFIG['drafts_mbox']); |
| | | if ($CONFIG['junk_mbox']) |
| | | $OUTPUT->set_env('junk_mailbox', $CONFIG['junk_mbox']); |
| | | |
| | | if (!empty($_SESSION['browser_caps'])) |
| | | $OUTPUT->set_env('browser_capabilities', $_SESSION['browser_caps']); |
| | | |
| | | if (!$OUTPUT->ajax_call) |
| | | $OUTPUT->add_label('checkingmail', 'deletemessage', 'movemessagetotrash', |
| | |
| | | |
| | | // single header value is requested |
| | | if (!empty($attrib['valueof'])) |
| | | return Q($plugin['output'][$attrib['valueof']]['value'], ($hkey == 'subject' ? 'strict' : 'show')); |
| | | return Q($plugin['output'][$attrib['valueof']]['value'], ($attrib['valueof'] == 'subject' ? 'strict' : 'show')); |
| | | |
| | | // compose html table |
| | | $table = new html_table(array('cols' => 2)); |
| | |
| | | } |
| | | |
| | | // Content-Type: image/*... |
| | | if (preg_match('/^image\//i', $attach_prop->mimetype) || |
| | | // ...or known file extension: many clients are using application/octet-stream |
| | | ($attach_prop->filename && |
| | | preg_match('/^application\/octet-stream$/i', $attach_prop->mimetype) && |
| | | preg_match('/\.(jpg|jpeg|png|gif|bmp)$/i', $attach_prop->filename)) |
| | | ) { |
| | | if (rcmail_part_image_type($attach_prop)) { |
| | | $out .= html::tag('hr') . html::p(array('align' => "center"), |
| | | html::img(array( |
| | | 'src' => $MESSAGE->get_part_url($attach_prop->mime_id, true), |
| | |
| | | return html::div($attrib, $out); |
| | | } |
| | | |
| | | function rcmail_part_image_type($part) |
| | | { |
| | | $rcmail = rcmail::get_instance(); |
| | | |
| | | // Skip TIFF images if browser doesn't support this format... |
| | | $tiff_support = !empty($_SESSION['browser_caps']) && !empty($_SESSION['browser_caps']['tif']); |
| | | // until we can convert them to JPEG |
| | | $tiff_support = $tiff_support || $rcmail->config->get('im_convert_path'); |
| | | |
| | | // Content-type regexp |
| | | $mime_regex = $tiff_support ? '/^image\//i' : '/^image\/(?!tif)/i'; |
| | | |
| | | // Content-Type: image/*... |
| | | if (preg_match($mime_regex, $part->mimetype)) { |
| | | return $part->mimetype; |
| | | } |
| | | |
| | | // Many clients use application/octet-stream, we'll detect mimetype |
| | | // by checking filename extension |
| | | |
| | | // Supported image filename extensions to image type map |
| | | $types = array( |
| | | 'jpg' => 'image/jpeg', |
| | | 'jpeg' => 'image/jpeg', |
| | | 'png' => 'image/png', |
| | | 'gif' => 'image/gif', |
| | | 'bmp' => 'image/bmp', |
| | | ); |
| | | if ($tiff_support) { |
| | | $types['tif'] = 'image/tiff'; |
| | | $types['tiff'] = 'image/tiff'; |
| | | } |
| | | |
| | | if ($part->filename |
| | | && preg_match('/^application\/octet-stream$/i', $part->mimetype) |
| | | && preg_match('/\.([^.])$/i', $part->filename, $m) |
| | | && ($extension = strtolower($m[1])) |
| | | && isset($types[$extension]) |
| | | ) { |
| | | return $types[$extension]; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * Convert all relative URLs according to a <base> in HTML |
| | |
| | | // find STYLE tags |
| | | while (($pos = stripos($body, '<style', $last_style_pos)) && ($pos2 = stripos($body, '</style>', $pos))) |
| | | { |
| | | $pos = strpos($body, '>', $pos)+1; |
| | | $pos = strpos($body, '>', $pos) + 1; |
| | | $len = $pos2 - $pos; |
| | | |
| | | // replace all css definitions with #container [def] |
| | | $styles = rcmail_mod_css_styles( |
| | | substr($body, $pos, $pos2-$pos), $cont_id, $allow_remote); |
| | | $styles = substr($body, $pos, $len); |
| | | $styles = rcmail_mod_css_styles($styles, $cont_id, $allow_remote); |
| | | |
| | | $body = substr_replace($body, $styles, $pos, $pos2-$pos); |
| | | $last_style_pos = $pos2; |
| | | $body = substr_replace($body, $styles, $pos, $len); |
| | | $last_style_pos = $pos2 + strlen($styles) - $len; |
| | | } |
| | | |
| | | // modify HTML links to open a new window if clicked |
| | |
| | | |
| | | function rcmail_message_part_controls($attrib) |
| | | { |
| | | global $MESSAGE; |
| | | global $MESSAGE, $RCMAIL; |
| | | |
| | | $part = asciiwords(get_input_value('_part', RCUBE_INPUT_GPC)); |
| | | if (!is_object($MESSAGE) || !is_array($MESSAGE->parts) || !($_GET['_uid'] && $_GET['_part']) || !$MESSAGE->mime_parts[$part]) |
| | | return ''; |
| | | |
| | | $part = $MESSAGE->mime_parts[$part]; |
| | | $part = $MESSAGE->mime_parts[$part]; |
| | | $table = new html_table(array('cols' => 3)); |
| | | |
| | | $filename = $part->filename; |
| | |
| | | $table->add('download-link', html::a(array('href' => './?'.str_replace('_frame=', '_download=', $_SERVER['QUERY_STRING'])), Q(rcube_label('download')))); |
| | | } |
| | | |
| | | if (!empty($part->size)) { |
| | | $table->add('title', Q(rcube_label('filesize'))); |
| | | $table->add('header', Q(show_bytes($part->size))); |
| | | } |
| | | $table->add('title', Q(rcube_label('filesize'))); |
| | | $table->add('header', Q($RCMAIL->message_part_size($part))); |
| | | |
| | | return $table->show($attrib); |
| | | } |