diff options
author | thomascube <thomas@roundcube.net> | 2006-07-30 10:14:19 +0000 |
---|---|---|
committer | thomascube <thomas@roundcube.net> | 2006-07-30 10:14:19 +0000 |
commit | fe79b1bcf828b6b9f947c4b32d5e7bf297438be4 (patch) | |
tree | 001f53def4cf56239c503501e4b3b0e4dd291b08 /program/steps/mail | |
parent | 06ec1f2fbda997fdb8254660412d811c20351c99 (diff) |
Alter links in HTML messages; highlight droptargets
Diffstat (limited to 'program/steps/mail')
-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) |