Changeset f115416 in github for program/steps/mail/func.inc


Ignore:
Timestamp:
Apr 28, 2007 2:07:12 PM (6 years ago)
Author:
thomascube <thomas@…>
Branches:
master, HEAD, courier-fix, dev-browser-capabilities, pdo, release-0.6, release-0.7, release-0.8
Children:
24f8ce48
Parents:
9e5d051
Message:

Merged branch devel-addressbook from r443 back to trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • program/steps/mail/func.inc

    rfd39346 rf115416  
    66 |                                                                       | 
    77 | This file is part of the RoundCube Webmail client                     | 
    8  | Copyright (C) 2005, RoundCube Dev. - Switzerland                      | 
     8 | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland                 | 
    99 | Licensed under the GNU GPL                                            | 
    1010 |                                                                       | 
     
    2626$EMAIL_ADDRESS_PATTERN = '/([a-z0-9][a-z0-9\-\.\+\_]*@[a-z0-9]([a-z0-9\-][.]?)*[a-z0-9]\\.[a-z]{2,5})/i'; 
    2727 
    28 if (empty($_SESSION['mbox'])){ 
     28if (empty($_SESSION['mbox'])) 
    2929  $_SESSION['mbox'] = $IMAP->get_mailbox_name(); 
    30 } 
    3130 
    3231// set imap properties and session vars 
     
    6463 
    6564// set current mailbox in client environment 
    66 $OUTPUT->add_script(sprintf("%s.set_env('mailbox', '%s');", $JS_OBJECT_NAME, $IMAP->get_mailbox_name())); 
     65$OUTPUT->set_env('mailbox', $IMAP->get_mailbox_name()); 
     66//$OUTPUT->set_pagetitle(rcube_charset_convert($IMAP->get_mailbox_name(), 'UTF-7', 'UTF-8')); 
    6767 
    6868if ($CONFIG['trash_mbox']) 
    69   $OUTPUT->add_script(sprintf("%s.set_env('trash_mailbox', '%s');", $JS_OBJECT_NAME, $CONFIG['trash_mbox'])); 
    70  
     69  $OUTPUT->set_env('trash_mailbox', $CONFIG['trash_mbox']); 
    7170if ($CONFIG['drafts_mbox']) 
    72   $OUTPUT->add_script(sprintf("%s.set_env('drafts_mailbox', '%s');", $JS_OBJECT_NAME, $CONFIG['drafts_mbox'])); 
    73  
     71  $OUTPUT->set_env('drafts_mailbox', $CONFIG['drafts_mbox']); 
    7472if ($CONFIG['junk_mbox']) 
    75   $OUTPUT->add_script(sprintf("%s.set_env('junk_mailbox', '%s');", $JS_OBJECT_NAME, $CONFIG['junk_mbox'])); 
     73  $OUTPUT->set_env('junk_mailbox', $CONFIG['junk_mbox']); 
     74 
     75if (!$OUTPUT->ajax_call) 
     76  rcube_add_label('checkingmail'); 
     77 
    7678 
    7779// return the mailboxlist in HTML 
    7880function rcmail_mailbox_list($attrib) 
    7981  { 
    80   global $IMAP, $CONFIG, $OUTPUT, $JS_OBJECT_NAME, $COMM_PATH; 
     82  global $IMAP, $CONFIG, $OUTPUT, $COMM_PATH; 
    8183  static $s_added_script = FALSE; 
    8284  static $a_mailboxes; 
     
    137139 
    138140  if ($type=='ul') 
    139     $OUTPUT->add_script(sprintf("%s.gui_object('mailboxlist', '%s');", $JS_OBJECT_NAME, $attrib['id'])); 
     141    $OUTPUT->add_gui_object('mailboxlist', $attrib['id']); 
    140142 
    141143  return $out . "</$type>"; 
     
    177179function rcmail_render_folder_tree_html(&$arrFolders, &$special, &$mbox_name, $maxlength, $nestLevel=0) 
    178180  { 
    179   global $JS_OBJECT_NAME, $COMM_PATH, $IMAP, $CONFIG, $OUTPUT; 
     181  global $COMM_PATH, $IMAP, $CONFIG, $OUTPUT; 
    180182 
    181183  $idx = 0; 
     
    208210 
    209211    // make folder name safe for ids and class names 
    210     $folder_css = $class_name = preg_replace('/[^a-z0-9\-_]/', '', $folder_lc); 
     212    $folder_id = preg_replace('/[^A-Za-z0-9\-_]/', '', $folder['id']); 
     213    $class_name = preg_replace('/[^a-z0-9\-_]/', '', $folder_lc); 
    211214 
    212215    // set special class for Sent, Drafts, Trash and Junk 
     
    221224 
    222225    $js_name = htmlspecialchars(JQ($folder['id'])); 
    223     $out .= sprintf('<li id="rcmbx%s" class="mailbox %s %s%s%s"><a href="%s&amp;_mbox=%s"'. 
    224                     ' onclick="return %s.command(\'list\',\'%s\')"'. 
    225                     ' onmouseover="return %s.focus_mailbox(\'%s\')"' .             
    226                     ' onmouseout="return %s.unfocus_mailbox(\'%s\')"' . 
    227                     ' onmouseup="return %s.mbox_mouse_up(\'%s\')"%s>%s</a>', 
    228                     $folder_css, 
     226    $out .= sprintf('<li id="rcmli%s" class="mailbox %s %s%s%s"><a href="%s"'. 
     227                    ' onclick="return %s.command(\'list\',\'%s\',this)"'. 
     228                    ' onmouseover="return %s.focus_folder(\'%s\')"' . 
     229                    ' onmouseout="return %s.unfocus_folder(\'%s\')"' . 
     230                    ' onmouseup="return %s.folder_mouse_up(\'%s\')"%s>%s</a>', 
     231                    $folder_id, 
    229232                    $class_name, 
    230233                    $zebra_class, 
    231234                    $unread_count ? ' unread' : '', 
    232235                    $folder['id']==$mbox_name ? ' selected' : '', 
    233                     $COMM_PATH, 
    234                     urlencode($folder['id']), 
    235                     $JS_OBJECT_NAME, 
     236                    Q(rcmail_self_url('', array('_mbox' => $folder['id']))), 
     237                    JS_OBJECT_NAME, 
    236238                    $js_name, 
    237                     $JS_OBJECT_NAME, 
     239                    JS_OBJECT_NAME, 
    238240                    $js_name, 
    239                     $JS_OBJECT_NAME, 
     241                    JS_OBJECT_NAME, 
    240242                    $js_name, 
    241                     $JS_OBJECT_NAME, 
     243                    JS_OBJECT_NAME, 
    242244                    $js_name, 
    243245                    $title, 
     
    294296function rcmail_message_list($attrib) 
    295297  { 
    296   global $IMAP, $CONFIG, $COMM_PATH, $OUTPUT, $JS_OBJECT_NAME; 
     298  global $IMAP, $CONFIG, $COMM_PATH, $OUTPUT; 
    297299 
    298300  $skin_path = $CONFIG['skin_path']; 
     
    359361        if (!empty($attrib['sortascbutton'])) 
    360362          { 
    361           $sort .= rcube_button(array('command' => 'sort', 
    362                                       'prop' => $col.'_ASC', 
    363                                       'image' => $attrib['sortascbutton'], 
    364                                       'align' => 'absmiddle', 
    365                                       'title' => 'sortasc')); 
     363          $sort .= $OUTPUT->button(array( 
     364            'command' => 'sort', 
     365            'prop' => $col.'_ASC', 
     366            'image' => $attrib['sortascbutton'], 
     367            'align' => 'absmiddle', 
     368            'title' => 'sortasc')); 
    366369          }        
    367370         
     
    369372        if (!empty($attrib['sortdescbutton'])) 
    370373          { 
    371           $sort .= rcube_button(array('command' => 'sort', 
    372                                       'prop' => $col.'_DESC', 
    373                                       'image' => $attrib['sortdescbutton'], 
    374                                       'align' => 'absmiddle', 
    375                                       'title' => 'sortdesc'));         
     374          $sort .= $OUTPUT->button(array( 
     375            'command' => 'sort', 
     376            'prop' => $col.'_DESC', 
     377            'image' => $attrib['sortdescbutton'], 
     378            'align' => 'absmiddle', 
     379            'title' => 'sortdesc')); 
    376380          } 
    377381        } 
     
    380384        { 
    381385        $col_name = sprintf('<a href="./#sort" onclick="return %s.command(\'sort\',\'%s\',this)" title="%s">%s</a>', 
    382                             $JS_OBJECT_NAME, 
     386                            JS_OBJECT_NAME, 
    383387                            $col, 
    384388                            rcube_label('sortby'), 
     
    431435      $message_icon = $attrib['messageicon']; 
    432436     
    433         // set attachment icon 
     437    // set attachment icon 
    434438    if ($attrib['attachmenticon'] && preg_match("/multipart\/[mr]/i", $header->ctype)) 
    435439      $attach_icon = $attrib['attachmenticon']; 
     
    442446     
    443447    $out .= sprintf("<td class=\"icon\">%s</td>\n", $message_icon ? sprintf($image_tag, $skin_path, $message_icon, '') : ''); 
    444          
     448     
    445449    // format each col 
    446450    foreach ($a_show_cols as $col) 
     
    450454      else if ($col=='subject') 
    451455        { 
    452         $cont = Q($IMAP->decode_header($header->$col)); 
    453         if (!$cont) $cont = Q(rcube_label('nosubject')); 
    454         // firefox/mozilla temporary workaround to pad subject with content so that whitespace in rows responds to drag+drop 
    455         $cont .= '<img src="./program/blank.gif" height="5" width="1000" alt="" />'; 
     456        $cont = Q(rcube_imap::decode_mime_string($header->$col, $header->charset)); 
     457        if (empty($cont)) $cont = Q(rcube_label('nosubject')); 
    456458        } 
    457459      else if ($col=='size') 
    458460        $cont = show_bytes($header->$col); 
    459461      else if ($col=='date') 
    460         $cont = format_date($header->date); //date('m.d.Y G:i:s', strtotime($header->date)); 
     462        $cont = format_date($header->date); 
    461463      else 
    462464        $cont = Q($header->$col); 
     
    479481   
    480482  // set client env 
    481   $javascript .= sprintf("%s.gui_object('mailcontframe', '%s');\n", $JS_OBJECT_NAME, 'mailcontframe'); 
    482   $javascript .= sprintf("%s.gui_object('messagelist', '%s');\n", $JS_OBJECT_NAME, $attrib['id']); 
    483   $javascript .= sprintf("%s.set_env('messagecount', %d);\n", $JS_OBJECT_NAME, $message_count); 
    484   $javascript .= sprintf("%s.set_env('current_page', %d);\n", $JS_OBJECT_NAME, $IMAP->list_page); 
    485   $javascript .= sprintf("%s.set_env('pagecount', %d);\n", $JS_OBJECT_NAME, ceil($message_count/$IMAP->page_size)); 
    486   $javascript .= sprintf("%s.set_env('sort_col', '%s');\n", $JS_OBJECT_NAME, $sort_col); 
    487   $javascript .= sprintf("%s.set_env('sort_order', '%s');\n", $JS_OBJECT_NAME, $sort_order); 
     483  $OUTPUT->add_gui_object('mailcontframe', 'mailcontframe'); 
     484  $OUTPUT->add_gui_object('messagelist', $attrib['id']); 
     485  $OUTPUT->set_env('messagecount', $message_count); 
     486  $OUTPUT->set_env('current_page', $IMAP->list_page); 
     487  $OUTPUT->set_env('pagecount', ceil($message_count/$IMAP->page_size)); 
     488  $OUTPUT->set_env('sort_col', $sort_col); 
     489  $OUTPUT->set_env('sort_order', $sort_order); 
    488490   
    489491  if ($attrib['messageicon']) 
    490     $javascript .= sprintf("%s.set_env('messageicon', '%s%s');\n", $JS_OBJECT_NAME, $skin_path, $attrib['messageicon']); 
     492    $OUTPUT->set_env('messageicon', $skin_path . $attrib['messageicon']); 
    491493  if ($attrib['deletedicon']) 
    492     $javascript .= sprintf("%s.set_env('deletedicon', '%s%s');\n", $JS_OBJECT_NAME, $skin_path, $attrib['deletedicon']); 
     494    $OUTPUT->set_env('deletedicon', $skin_path . $attrib['deletedicon']); 
    493495  if ($attrib['unreadicon']) 
    494     $javascript .= sprintf("%s.set_env('unreadicon', '%s%s');\n", $JS_OBJECT_NAME, $skin_path, $attrib['unreadicon']); 
     496    $OUTPUT->set_env('unreadicon', $skin_path . $attrib['unreadicon']); 
    495497  if ($attrib['repliedicon']) 
    496     $javascript .= sprintf("%s.set_env('repliedicon', '%s%s');\n", $JS_OBJECT_NAME, $skin_path, $attrib['repliedicon']); 
     498    $OUTPUT->set_env('repliedicon', $skin_path . $attrib['repliedicon']); 
    497499  if ($attrib['attachmenticon']) 
    498     $javascript .= sprintf("%s.set_env('attachmenticon', '%s%s');\n", $JS_OBJECT_NAME, $skin_path, $attrib['attachmenticon']); 
    499      
    500   $javascript .= sprintf("%s.set_env('messages', %s);", $JS_OBJECT_NAME, array2js($a_js_message_arr)); 
    501    
    502   $OUTPUT->add_script($javascript);   
     500    $OUTPUT->set_env('attachmenticon', $skin_path . $attrib['attachmenticon']); 
     501   
     502  $OUTPUT->set_env('messages', array2js($a_js_message_arr)); 
     503   
    503504  $OUTPUT->include_script('list.js'); 
    504505   
    505506  return $out; 
    506507  } 
    507  
    508  
    509508 
    510509 
     
    512511function rcmail_js_message_list($a_headers, $insert_top=FALSE) 
    513512  { 
    514   global $CONFIG, $IMAP; 
    515  
    516   $commands = ''; 
     513  global $CONFIG, $IMAP, $OUTPUT; 
     514 
    517515  $a_show_cols = is_array($CONFIG['list_cols']) ? $CONFIG['list_cols'] : array('subject'); 
    518516 
    519517  // show 'to' instead of from in sent messages 
    520   if (($IMAP->get_mailbox_name()==$CONFIG['sent_mbox'] || $IMAP->get_mailbox_name()==$CONFIG['drafts_mbox']) 
    521       && ($f = array_search('from', $a_show_cols)) && !array_search('to', $a_show_cols)) 
     518  if (($IMAP->get_mailbox_name() == $CONFIG['sent_mbox'] || $IMAP->get_mailbox_name() == $CONFIG['drafts_mbox']) 
     519      && (($f = array_search('from', $a_show_cols)) !== false) && array_search('to', $a_show_cols) === false) 
    522520    $a_show_cols[$f] = 'to'; 
    523521 
    524   $commands .= sprintf("this.set_message_coltypes(%s);\n", array2js($a_show_cols));  
     522  $OUTPUT->command('set_message_coltypes', $a_show_cols); 
    525523 
    526524  // loop through message headers 
     
    530528    $a_msg_cols = array(); 
    531529    $a_msg_flags = array(); 
    532        
     530 
    533531    // format each col; similar as in rcmail_message_list() 
    534532    foreach ($a_show_cols as $col) 
     
    538536      else if ($col=='subject') 
    539537        { 
    540         $cont = Q($IMAP->decode_header($header->$col)); 
     538        $cont = Q(rcube_imap::decode_mime_string($header->$col, $header->charset)); 
    541539        if (!$cont) $cont = Q(rcube_label('nosubject')); 
    542540        } 
     
    544542        $cont = show_bytes($header->$col); 
    545543      else if ($col=='date') 
    546         $cont = format_date($header->date); //date('m.d.Y G:i:s', strtotime($header->date)); 
     544        $cont = format_date($header->date); 
    547545      else 
    548546        $cont = Q($header->$col); 
     
    554552    $a_msg_flags['unread'] = $header->seen ? 0 : 1; 
    555553    $a_msg_flags['replied'] = $header->answered ? 1 : 0; 
    556     $commands .= sprintf("this.add_message_row(%s, %s, %s, %b, %b);\n", 
    557                          $header->uid, 
    558                          array2js($a_msg_cols), 
    559                          array2js($a_msg_flags), 
    560                          preg_match("/multipart\/m/i", $header->ctype), 
    561                          $insert_top); 
    562     } 
    563  
    564   return $commands; 
     554    $OUTPUT->command('add_message_row', 
     555      $header->uid, 
     556      $a_msg_cols, 
     557      $a_msg_flags, 
     558      preg_match("/multipart\/m/i", $header->ctype), 
     559      $insert_top); 
     560    } 
    565561  } 
    566562 
     
    569565function rcmail_messagecontent_frame($attrib) 
    570566  { 
    571   global $OUTPUT, $JS_OBJECT_NAME; 
     567  global $OUTPUT; 
    572568   
    573569  if (empty($attrib['id'])) 
     
    582578         $attrib_str); 
    583579 
    584   $OUTPUT->add_script("$JS_OBJECT_NAME.set_env('contentframe', '$framename');"); 
     580  $OUTPUT->set_env('contentframe', $framename); 
     581  $OUTPUT->set_env('blankpage', $attrib['src'] ? $OUTPUT->abs_url($attrib['src']) : 'program/blank.gif'); 
    585582 
    586583  return $out; 
    587584  } 
    588585 
    589 // return code for search function 
    590 function rcmail_search_form($attrib) 
    591   { 
    592   global $OUTPUT, $JS_OBJECT_NAME; 
    593  
    594   // add some labels to client 
    595   rcube_add_label('searching'); 
    596  
    597   $attrib['name'] = '_q'; 
    598    
    599   if (empty($attrib['id'])) 
    600     $attrib['id'] = 'rcmqsearchbox'; 
    601    
    602   $input_q = new textfield($attrib); 
    603   $out = $input_q->show(); 
    604  
    605   $OUTPUT->add_script(sprintf("%s.gui_object('qsearchbox', '%s');", 
    606                               $JS_OBJECT_NAME, 
    607                               $attrib['id'])); 
    608  
    609   // add form tag around text field 
    610   if (empty($attrib['form'])) 
    611     $out = sprintf('<form name="rcmqsearchform" action="./" '. 
    612                    'onsubmit="%s.command(\'search\');return false" style="display:inline;">%s</form>', 
    613                    $JS_OBJECT_NAME, 
    614                    $out); 
    615  
    616   return $out; 
    617   }  
    618  
    619586 
    620587function rcmail_messagecount_display($attrib) 
    621588  { 
    622   global $IMAP, $OUTPUT, $JS_OBJECT_NAME; 
     589  global $IMAP, $OUTPUT; 
    623590   
    624591  if (!$attrib['id']) 
    625592    $attrib['id'] = 'rcmcountdisplay'; 
    626593 
    627   $OUTPUT->add_script(sprintf("%s.gui_object('countdisplay', '%s');", 
    628                               $JS_OBJECT_NAME, 
    629                               $attrib['id'])); 
     594  $OUTPUT->add_gui_object('countdisplay', $attrib['id']); 
    630595 
    631596  // allow the following attributes to be added to the <span> tag 
     
    642607function rcmail_quota_display($attrib) 
    643608  { 
    644   global $OUTPUT, $JS_OBJECT_NAME, $COMM_PATH; 
     609  global $OUTPUT, $COMM_PATH; 
    645610 
    646611  if (!$attrib['id']) 
    647612    $attrib['id'] = 'rcmquotadisplay'; 
    648613 
    649   $OUTPUT->add_script(sprintf("%s.gui_object('quotadisplay', '%s');", $JS_OBJECT_NAME, $attrib['id'])); 
     614  $OUTPUT->add_gui_object('quotadisplay', $attrib['id']); 
    650615 
    651616  // allow the following attributes to be added to the <span> tag 
     
    676641      { 
    677642      $attrib = array('width' => 100, 'height' => 14); 
    678       $quota_text = sprintf('<img src="%s&amp;_action=quotaimg&amp;u=%s&amp;q=%d&amp;w=%d&amp;h=%d" width="%d" height="%d" alt="%s" title="%s / %s" />', 
    679                             $COMM_PATH, 
     643      $quota_text = sprintf('<img src="./bin/quotaimg.php?u=%s&amp;q=%d&amp;w=%d&amp;h=%d" width="%d" height="%d" alt="%s" title="%s / %s" />', 
    680644                            $quota['used'], $quota['total'], 
    681645                            $attrib['width'], $attrib['height'], 
     
    724688function rcmail_print_body($part, $safe=FALSE, $plain=FALSE) 
    725689  { 
    726   global $IMAP, $REMOTE_OBJECTS, $JS_OBJECT_NAME; 
     690  global $IMAP, $REMOTE_OBJECTS; 
    727691   
    728692  $body = is_array($part->replaces) ? strtr($part->body, $part->replaces) : $part->body; 
     
    796760     
    797761    $convert_patterns[] = '/([a-z0-9][a-z0-9\-\.\+\_]*@[a-z0-9]([a-z0-9\-][.]?)*[a-z0-9]\\.[a-z]{2,5})/ie'; 
    798     $convert_replaces[] = "rcmail_str_replacement('<a href=\"mailto:\\1\" onclick=\"return $JS_OBJECT_NAME.command(\'compose\',\'\\1\',this)\">\\1</a>', \$replace_strings)"; 
     762    $convert_replaces[] = "rcmail_str_replacement('<a href=\"mailto:\\1\" onclick=\"return ".JS_OBJECT_NAME.".command(\'compose\',\'\\1\',this)\">\\1</a>', \$replace_strings)"; 
    799763     
    800764    if ($part->ctype_parameters['format'] != 'flowed') 
     
    10531017  if (!$headers) 
    10541018    $headers = is_object($MESSAGE['headers']) ? get_object_vars($MESSAGE['headers']) : $MESSAGE['headers']; 
    1055      
     1019   
    10561020  $header_count = 0; 
    10571021   
     
    10731037      $header_value = Q(rcmail_address_string($headers[$hkey], NULL, $attrib['addicon']), 'show'); 
    10741038    else 
    1075       $header_value = Q($IMAP->decode_header($headers[$hkey])); 
     1039      $header_value = Q(rcube_imap::decode_mime_string($headers[$hkey], $headers['charset'])); 
    10761040 
    10771041    $out .= "\n<tr>\n"; 
     
    10901054function rcmail_message_body($attrib) 
    10911055  { 
    1092   global $CONFIG, $OUTPUT, $MESSAGE, $IMAP, $GET_URL, $REMOTE_OBJECTS, $JS_OBJECT_NAME; 
     1056  global $CONFIG, $OUTPUT, $MESSAGE, $IMAP, $GET_URL, $REMOTE_OBJECTS; 
    10931057   
    10941058  if (!is_array($MESSAGE['parts']) && !$MESSAGE['body']) 
     
    11701134  // tell client that there are blocked remote objects 
    11711135  if ($REMOTE_OBJECTS && !$safe_mode) 
    1172     $OUTPUT->add_script(sprintf("%s.set_env('blockedobjects', true);", $JS_OBJECT_NAME)); 
     1136    $OUTPUT->set_env('blockedobjects', true); 
    11731137 
    11741138  $out .= "\n</div>"; 
     
    12621226  if (stristr((string)$attrib['href'], 'mailto:')) 
    12631227    $attrib['onclick'] = sprintf("return %s.command('compose','%s',this)", 
    1264                                  $GLOBALS['JS_OBJECT_NAME'], 
     1228                                 JS_OBJECT_NAME, 
    12651229                                 JQ(substr($attrib['href'], 7))); 
    12661230  else if (!empty($attrib['href']) && $attrib['href']{0}!='#') 
     
    13841348function rcmail_address_string($input, $max=NULL, $addicon=NULL) 
    13851349  { 
    1386   global $IMAP, $PRINT_MODE, $CONFIG, $OUTPUT, $JS_OBJECT_NAME, $EMAIL_ADDRESS_PATTERN; 
     1350  global $IMAP, $PRINT_MODE, $CONFIG, $OUTPUT, $EMAIL_ADDRESS_PATTERN; 
    13871351   
    13881352  $a_parts = $IMAP->decode_address_list($input); 
     
    14041368      $out .= sprintf('<a href="mailto:%s" onclick="return %s.command(\'compose\',\'%s\',this)" class="rcmContactAddress" title="%s">%s</a>', 
    14051369                      Q($part['mailto']), 
    1406                       $JS_OBJECT_NAME, 
     1370                      JS_OBJECT_NAME, 
    14071371                      JQ($part['mailto']), 
    14081372                      Q($part['mailto']), 
     
    14111375      if ($addicon) 
    14121376        $out .= sprintf('&nbsp;<a href="#add" onclick="return %s.command(\'add-contact\',\'%s\',this)" title="%s"><img src="%s%s" alt="add" border="0" /></a>', 
    1413                         $JS_OBJECT_NAME, 
     1377                        JS_OBJECT_NAME, 
    14141378                        urlencode($part['string']), 
    14151379                        rcube_label('addtoaddressbook'), 
     
    15011465  unset($_SESSION['compose']); 
    15021466  } 
    1503    
    1504    
     1467 
     1468 
     1469// register UI objects 
     1470$OUTPUT->add_handlers(array( 
     1471  'mailboxlist' => 'rcmail_mailbox_list', 
     1472  'messages' => 'rcmail_message_list', 
     1473  'messagecountdisplay' => 'rcmail_messagecount_display', 
     1474  'quotadisplay' => 'rcmail_quota_display', 
     1475  'messageheaders' => 'rcmail_message_headers', 
     1476  'messagebody' => 'rcmail_message_body', 
     1477  'messagecontentframe' => 'rcmail_messagecontent_frame', 
     1478  'messagepartframe' => 'rcmail_message_part_frame', 
     1479  'messagepartcontrols' => 'rcmail_message_part_controls', 
     1480  'searchform' => 'rcmail_search_form' 
     1481)); 
     1482 
    15051483?> 
Note: See TracChangeset for help on using the changeset viewer.