Drupal 7 Open File Attachment Links New Window

Wed, Nov 7, 2012 1-minute read

For requests like: Open attachment in new window code bellow should be placed inside template.php file:
Also return statement is wrapped with span/class that allows extra theming options.

function THEMENAME_file_link($variables) {  
  $file = $variables['file'];  
  $icon_directory = $variables['icon_directory'];  

  $url = file_create_url($file->uri);  
  $icon = theme('file_icon', array('file' => $file, 'icon_directory' => $icon_directory));  

  // Set options as per anchor format described at  
  // http://microformats.org/wiki/file-format-examples  
  $options = array(  
      'attributes' => array(  
          'type' => $file->filemime . '; length=' . $file->filesize,  
      ),  
  );  

  // Use the description as the link text if available.  
  if (empty($file->description)) {  
    $link_text = $file->filename;  
  } else {  
    $link_text = $file->description;  
    $options['attributes']['title'] = check_plain($file->filename);  
  }  

  //open files of particular mime types in new window  
  $new_window_mimetypes = array('application/pdf', 'text/plain');  
  if (in_array($file->filemime, $new_window_mimetypes)) {  
    $options['attributes']['target'] = '_blank';  
  }  

  return '<span class="file">' . $icon . ' ' . l($link_text, $url, $options) . '</span>';  

}