summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorthomascube <thomas@roundcube.net>2009-03-02 13:21:52 +0000
committerthomascube <thomas@roundcube.net>2009-03-02 13:21:52 +0000
commitf54a3a6d41e5700c45120091a57f2c73b804ae25 (patch)
treec75305062de8c33459198afc03dd764d29da0558
parent65d71081907123fd5ecc81fa3bba659e7f45fe86 (diff)
Add callback for <a> tags to add target=_blank
-rw-r--r--program/steps/mail/func.inc6
1 files changed, 6 insertions, 0 deletions
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index e947a27c4..702625cea 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -707,6 +707,7 @@ function rcmail_wash_html($html, $p = array(), $cid_replaces)
}
$washer = new washtml($wash_opts);
+ $washer->add_callback('a', 'rcmail_washtml_callback');
$washer->add_callback('form', 'rcmail_washtml_callback');
if ($p['safe']) { // allow CSS styles, will be sanitized by rcmail_washtml_callback()
@@ -819,6 +820,11 @@ function rcmail_washtml_callback($tagname, $attrib, $content)
$out = html::div('form', $content);
break;
+ case 'a':
+ if ($attrib) $attrib .= ' target="_blank"';
+ $out = '<a'.$attrib.'>' . $content . '</a>';
+ break;
+
case 'style':
// decode all escaped entities and reduce to ascii strings
$stripped = preg_replace('/[^a-zA-Z\(:]/', '', rcmail_xss_entitiy_decode($content));