diff options
Diffstat (limited to 'program/steps/mail/func.inc')
-rw-r--r-- | program/steps/mail/func.inc | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc index b1d3d8b6b..fd0d2c25d 100644 --- a/program/steps/mail/func.inc +++ b/program/steps/mail/func.inc @@ -216,6 +216,8 @@ function rcmail_render_folder_tree_html(&$arrFolders, &$special, &$mbox_name, $m $out .= sprintf('<li id="rcmbx%s" class="mailbox %s %s%s%s"><a href="%s&_mbox=%s"'. ' onclick="return %s.command(\'list\',\'%s\')"'. + ' onmouseover="return %s.focus_mailbox(\'%s\')"' . + ' onmouseout="return %s.unfocus_mailbox(\'%s\')"' . ' onmouseup="return %s.mbox_mouse_up(\'%s\')"%s>%s</a>', $folder_css, $class_name, @@ -228,6 +230,10 @@ function rcmail_render_folder_tree_html(&$arrFolders, &$special, &$mbox_name, $m addslashes($folder['id']), $JS_OBJECT_NAME, addslashes($folder['id']), + $JS_OBJECT_NAME, + addslashes($folder['id']), + $JS_OBJECT_NAME, + addslashes($folder['id']), $title, rep_specialchars_output($foldername, 'html', 'all')); @@ -1170,11 +1176,14 @@ function rcmail_mod_html_body($body, $container_id) $body = preg_replace('/(url\s*\()(["\']?)([\.\/]+[^"\'\)\s]+)(\2)\)/Uie', "'\\1\''.make_absolute_url('\\3', '$base_url').'\')'", $body); $body = preg_replace($base_reg, '', $body); } + + // modify HTML links to open a new window if clicked + $body = preg_replace('/<a\s+([^>]+)>/Uie', "rcmail_alter_html_link('\\1');", $body); // add comments arround html and other tags $out = preg_replace(array('/(<\/?html[^>]*>)/i', '/(<\/?head[^>]*>)/i', - '/(<title[^>]*>.+<\/title>)/ui', + '/(<title[^>]*>.*<\/title>)/Ui', '/(<\/?meta[^>]*>)/i'), '<!--\\1-->', $body); @@ -1184,12 +1193,26 @@ function rcmail_mod_html_body($body, $container_id) array('<div class="rcmBody">', '</div>'), $out); - return $out; } +// parse link attributes and set correct target +function rcmail_alter_html_link($in) + { + $attrib = parse_attrib_string($in); + + if (stristr((string)$attrib['href'], 'mailto:')) + $attrib['onclick'] = sprintf("return %s.command('compose','%s',this)", + $GLOBALS['JS_OBJECT_NAME'], + substr($attrib['href'], 7)); + else if (!empty($attrib['href']) && $attrib['href']{0}!='#') + $attrib['target'] = '_blank'; + + return '<a' . create_attrib_string($attrib, array('href', 'name', 'target', 'onclick', 'id', 'class', 'style', 'title')) . '>'; + } + // replace all css definitions with #container [def] function rcmail_mod_css_styles($source, $container_id) |