From fe79b1bcf828b6b9f947c4b32d5e7bf297438be4 Mon Sep 17 00:00:00 2001 From: thomascube Date: Sun, 30 Jul 2006 10:14:19 +0000 Subject: Alter links in HTML messages; highlight droptargets --- program/steps/mail/func.inc | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) (limited to 'program/steps') 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('
  • %s', $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('/]+)>/Uie', "rcmail_alter_html_link('\\1');", $body); // add comments arround html and other tags $out = preg_replace(array('/(<\/?html[^>]*>)/i', '/(<\/?head[^>]*>)/i', - '/(]*>.+<\/title>)/ui', + '/(]*>.*<\/title>)/Ui', '/(<\/?meta[^>]*>)/i'), '', $body); @@ -1184,12 +1193,26 @@ function rcmail_mod_html_body($body, $container_id) array('
    ', '
    '), $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 ''; + } + // replace all css definitions with #container [def] function rcmail_mod_css_styles($source, $container_id) -- cgit v1.2.3