1 file.theme.inc | theme_file_download_link($variables) |
Copy of theme_file_link() for linking to the file download URL.
See also
File
- core/
modules/ file/ file.theme.inc, line 387 - Theme functions for the File module.
Code
function theme_file_download_link($variables) {
$file = $variables['file'];
$uri = file_download_uri($file);
// Human-readable names, for use as text-alternatives to icons.
$mime_name = array(
'application/msword' => t('Microsoft Office document icon'),
'application/vnd.ms-excel' => t('Office spreadsheet icon'),
'application/vnd.ms-powerpoint' => t('Office presentation icon'),
'application/pdf' => t('PDF icon'),
'video/quicktime' => t('Movie icon'),
'audio/mpeg' => t('Audio icon'),
'audio/wav' => t('Audio icon'),
'image/jpeg' => t('Image icon'),
'image/png' => t('Image icon'),
'image/gif' => t('Image icon'),
'application/zip' => t('Package icon'),
'text/html' => t('HTML icon'),
'text/plain' => t('Plain text icon'),
'application/octet-stream' => t('Binary Data'),
);
$mimetype = file_get_mimetype($file->uri);
$icon = theme('file_icon', array(
'file' => $file,
'icon_directory' => $variables['icon_directory'],
'alt' => !empty($mime_name[$mimetype]) ? $mime_name[$mimetype] : t('File'),
));
// Set options as per anchor format described at
// http://microformats.org/wiki/file-format-examples
$uri['options']['attributes']['type'] = $file->filemime . '; length=' . $file->filesize;
// Provide the default link text.
if (!isset($variables['text'])) {
$variables['text'] = t('Download [file:name]');
}
// Perform unsanitized token replacement if $uri['options']['html'] is empty
// since then l() will escape the link text.
$variables['text'] = token_replace($variables['text'], array('file' => $file), array('clear' => TRUE, 'sanitize' => !empty($uri['options']['html'])));
$output = '<span class="file">' . $icon . ' ' . l($variables['text'], $uri['path'], $uri['options']);
$output .= ' <span class="file-size">(' . format_size($file->filesize) . ')</span>';
$output .= '</span>';
return $output;
}