Ignore:
Timestamp:
May 17, 2008 1:46:43 PM (5 years ago)
Author:
thomasb
Message:

New class rcube_message representing a mail message; changed global $MESSAGE from array to object

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/roundcubemail/program/steps/mail/show.inc

    r1366 r1400  
    2323 
    2424// similar code as in program/steps/mail/get.inc 
    25 if ($_GET['_uid']) 
    26   { 
    27   $MESSAGE = array('UID' => get_input_value('_uid', RCUBE_INPUT_GET)); 
    28   $MESSAGE['headers'] = $IMAP->get_headers($MESSAGE['UID']); 
     25if ($_GET['_uid']) { 
     26  $MESSAGE = new rcube_message(get_input_value('_uid', RCUBE_INPUT_GET)); 
    2927   
    3028  // set message charset as default 
    31   if (!empty($MESSAGE['headers']->charset)) 
    32     $IMAP->set_charset($MESSAGE['headers']->charset); 
     29  if (!empty($MESSAGE->headers->charset)) 
     30    $IMAP->set_charset($MESSAGE->headers->charset); 
    3331 
    3432  // go back to list if message not found (wrong UID) 
    35   if (!$MESSAGE['headers']) 
    36     { 
     33  if (empty($MESSAGE->headers)) { 
    3734    $OUTPUT->show_message('messageopenerror', 'error'); 
    3835    if ($RCMAIL->action=='preview' && template_exists('messagepreview')) 
    3936        $OUTPUT->send('messagepreview'); 
    40     else 
    41       { 
     37    else { 
    4238      $RCMAIL->action = 'list'; 
    4339      return; 
    44       } 
    4540    } 
     41  } 
    4642     
    47   // check if safe flag is set 
    48   if ($MESSAGE['is_safe'] = intval($_GET['_safe'])) 
    49     $_SESSION['safe_messages'][$MESSAGE['UID']] = true; 
    50   else if ($_SESSION['safe_messages'][$MESSAGE['UID']]) 
    51     $MESSAGE['is_safe'] = 1; 
    52  
    5343  $mbox_name = $IMAP->get_mailbox_name(); 
    5444   
    5545  // calculate Etag for this request 
    56   $etag = md5($MESSAGE['UID'].$mbox_name.session_id().intval($MESSAGE['headers']->mdn_sent).intval($MESSAGE['is_safe']).intval($PRINT_MODE)); 
     46  $etag = md5($MESSAGE->uid.$mbox_name.session_id().intval($MESSAGE->headers->mdn_sent).intval($MESSAGE->is_safe).intval($PRINT_MODE)); 
    5747 
    5848  // allow caching, unless remote images are present 
    59   if ((bool)$MESSAGE['is_safe']) 
     49  if ((bool)$MESSAGE->is_safe) 
    6050    send_nocacheing_headers(); 
    6151  else if (empty($CONFIG['devel_mode'])) 
    62     send_modified_header($_SESSION['login_time'], $etag, !$MESSAGE['headers']->seen); 
     52    send_modified_header($_SESSION['login_time'], $etag, !$MESSAGE->headers->seen); 
    6353 
    64   $MESSAGE['subject'] = $IMAP->decode_header($MESSAGE['headers']->subject); 
    65   $OUTPUT->set_pagetitle($MESSAGE['subject']); 
     54  $OUTPUT->set_pagetitle($MESSAGE->subject); 
    6655   
    67   if ($MESSAGE['structure'] = $IMAP->get_structure($MESSAGE['UID'])) 
    68     list($MESSAGE['parts'], $MESSAGE['attachments']) = rcmail_parse_message( 
    69       $MESSAGE['structure'], 
    70       array('safe' => $MESSAGE['is_safe'], 
    71             'prefer_html' => $CONFIG['prefer_html'], 
    72             'get_url' => $GET_URL.'&_part=%s') 
    73       ); 
    74   else 
    75     $MESSAGE['body'] = $IMAP->get_body($MESSAGE['UID']); 
    76  
    7756  // mark message as read 
    78   if (!$MESSAGE['headers']->seen) 
     57  if (!$MESSAGE->headers->seen) 
    7958  { 
    80     $marked = $IMAP->set_flag($MESSAGE['UID'], 'SEEN'); 
     59    $marked = $IMAP->set_flag($MESSAGE->uid, 'SEEN'); 
    8160    if($RCMAIL->action == 'preview' && $marked != -1) 
    8261    { 
    8362      $OUTPUT->command('set_unread_count_from_preview', $mbox_name, $IMAP->messagecount($mbox_name, 'UNSEEN'), ($mbox_name == 'INBOX')); 
    84       $OUTPUT->command('mark_as_read_from_preview', $MESSAGE['UID']); 
     63      $OUTPUT->command('mark_as_read_from_preview', $MESSAGE->uid); 
    8564    } 
    8665  } 
    8766 
    8867  // give message uid to the client 
    89   $OUTPUT->set_env('uid', $MESSAGE['UID']); 
    90   $OUTPUT->set_env('safemode', $MESSAGE['is_safe']); 
     68  $OUTPUT->set_env('uid', $MESSAGE->uid); 
     69  $OUTPUT->set_env('safemode', $MESSAGE->is_safe); 
    9170   
    9271  // check for unset disposition notification 
    93   if ($MESSAGE['headers']->mdn_to && !$MESSAGE['headers']->mdn_sent && $mbox_name != $CONFIG['drafts_mbox']) 
     72  if ($MESSAGE->headers->mdn_to && !$MESSAGE->headers->mdn_sent && 
     73      $mbox_name != $CONFIG['drafts_mbox'] && $mbox_name != $CONFIG['sent_mbox']) 
    9474  { 
    9575    if (intval($CONFIG['mdn_requests']) === 1) 
    9676    { 
    97       if (rcmail_send_mdn($MESSAGE['UID'])) 
     77      if (rcmail_send_mdn($MESSAGE->uid)) 
    9878        $OUTPUT->show_message('receiptsent', 'confirmation'); 
    9979    } 
     
    11494    $a_msg_index = $IMAP->message_index(NULL, $_SESSION['sort_col'], $_SESSION['sort_order']); 
    11595  
    116     $MESSAGE['index'] = array_search((string)$MESSAGE['UID'], $a_msg_index, TRUE); 
    117     $prev = isset($a_msg_index[$MESSAGE['index']-1]) ? $a_msg_index[$MESSAGE['index']-1] : -1 ; 
     96    $MESSAGE->index = array_search((string)$MESSAGE->uid, $a_msg_index, TRUE); 
     97    $prev = isset($a_msg_index[$MESSAGE->index-1]) ? $a_msg_index[$MESSAGE->index-1] : -1 ; 
    11898    $first = count($a_msg_index)>0 ? $a_msg_index[0] : -1; 
    119     $next = isset($a_msg_index[$MESSAGE['index']+1]) ? $a_msg_index[$MESSAGE['index']+1] : -1 ; 
     99    $next = isset($a_msg_index[$MESSAGE->index+1]) ? $a_msg_index[$MESSAGE->index+1] : -1 ; 
    120100    $last = count($a_msg_index)>0 ? $a_msg_index[count($a_msg_index)-1] : -1; 
    121101    } 
     
    123103    { 
    124104    // this assumes that we are sorted by date_DESC 
    125     $seq = $IMAP->get_id($MESSAGE['UID']); 
     105    $seq = $IMAP->get_id($MESSAGE->uid); 
    126106    $prev = $IMAP->get_uid($seq + 1); 
    127107    $first = $IMAP->get_uid($IMAP->messagecount()); 
    128108    $next = $IMAP->get_uid($seq - 1); 
    129109    $last = $IMAP->get_uid(1); 
    130     $MESSAGE['index'] = $IMAP->messagecount() - $seq; 
     110    $MESSAGE->index = $IMAP->messagecount() - $seq; 
    131111    } 
    132112   
     
    144124 
    145125function rcmail_message_attachments($attrib) 
    146   { 
    147   global $CONFIG, $OUTPUT, $PRINT_MODE, $MESSAGE, $GET_URL; 
     126{ 
     127  global $PRINT_MODE, $MESSAGE; 
     128   
     129  $out = $ol = ''; 
    148130 
    149   if (sizeof($MESSAGE['attachments'])) 
    150     { 
    151     // allow the following attributes to be added to the <ul> tag 
    152     $attrib_str = create_attrib_string($attrib, array('style', 'class', 'id')); 
    153     $out = '<ul' . $attrib_str . ">\n"; 
     131  if (sizeof($MESSAGE->attachments)) { 
     132    foreach ($MESSAGE->attachments as $attach_prop) { 
     133      if ($PRINT_MODE) { 
     134        $ol .= html::tag('li', null, sprintf("%s (%s)", Q($attach_prop->filename), Q(show_bytes($attach_prop->size)))); 
     135      } 
     136      else { 
     137        $ol .= html::tag('li', null, 
     138          html::a(array( 
     139            'href' => $MESSAGE->get_part_url($attach_prop->mime_id), 
     140            'onclick' => sprintf( 
     141              'return %s.command(\'load-attachment\',{part:\'%s\', mimetype:\'%s\'},this)', 
     142              JS_OBJECT_NAME, 
     143              $attach_prop->mime_id, 
     144              $attach_prop->mimetype), 
     145            ), 
     146            Q($attach_prop->filename))); 
     147      } 
     148    } 
    154149 
    155     foreach ($MESSAGE['attachments'] as $attach_prop) 
    156       { 
    157       if ($PRINT_MODE) 
    158         $out .= sprintf('<li>%s (%s)</li>'."\n", 
    159                         $attach_prop->filename, 
    160                         show_bytes($attach_prop->size)); 
    161       else 
    162         $out .= sprintf('<li><a href="%s&amp;_part=%s" onclick="return %s.command(\'load-attachment\',{part:\'%s\', mimetype:\'%s\'},this)">%s</a></li>'."\n", 
    163                         htmlspecialchars($GET_URL), 
    164                         $attach_prop->mime_id, 
    165                         JS_OBJECT_NAME, 
    166                         $attach_prop->mime_id, 
    167                         $attach_prop->mimetype, 
    168                         $attach_prop->filename); 
    169       } 
    170  
    171     $out .= "</ul>"; 
    172     return $out; 
    173     }   
    174   } 
     150    $out = html::tag('ul', $attrib, $ol, html::$common_attrib); 
     151  }  
     152   
     153  return $out; 
     154} 
    175155 
    176156 
Note: See TracChangeset for help on using the changeset viewer.