Agaric Design Collective

Open external URLs in a new window

Average: 5 (1 vote)
By Benjamin Melançon
on 13 Aug
0 comments

Key words and phrases

open external URL in new window or tab external link check

Tags

Description

Personally and professionally I think links should open in the same tab, but some clients insist on opening external links in new tabs.

<?php
/**
* Override theme_menu_item_link
* <a href="http://api.drupal.org/api/function/theme_menu_item_link/5
" title="http://api.drupal.org/api/function/theme_menu_item_link/5
">http://api.drupal.org/api/function/theme_menu_item_link/5
</a> */
function phptemplate_menu_item_link($item, $link_item) {
   
// make external links open in new windows   
   
$attributes = !empty($item['description']) ? array('title' => $item['description']) : array();
    if (
strpos($link_item['path'], 'http://') === 0 || strpos($link_item['path'], 'https://') === 0) {
       
$attributes['target'] = '_blank';
    }
  return
l($item['title'], $link_item['path'], $attributes, isset($item['query']) ? $item['query'] : NULL);
}
?>

Another example, from a view template:

<?php
$attributes
= '';
// ...
if (strpos($field_link_url, 'http://') === 0 || strpos($field_link_url, 'https://') === 0) {
 
$attributes .= ' target = "_blank"';
}

?>


<p>
<a href="<?php print $field_link_url ?>"<?php $attributes ?>>
<?php print $image ?>
</a>
</p>

 

Post new comment
The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <h1> <h2> <h3> <h4> <h5> <h6> <small> <pre> <strike> <sub> <sup> <kbd> <s>
  • Lines and paragraphs break automatically.
  • Web page addresses and e-mail addresses turn into links automatically.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Copy the characters (respecting upper/lower case) from the image.