1 file.theme.inc | theme_file_link($variables) |
Returns HTML for a link to a file.
Parameters
$variables: An associative array containing:
- file: A file object to which the link will be created.
- icon_directory: (optional) A path to a directory of icons to be used for files. Defaults to the value of the "file_icon_directory" variable.
Related topics
File
- core/
modules/ file/ file.theme.inc, line 47 - Theme functions for the File module.
Code
function theme_file_link($variables) {
$file = $variables['file'];
$icon_directory = $variables['icon_directory'];
$attributes = $variables['attributes'];
$url = file_create_url($file->uri);
// 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(
// Requires a file entity, make sure it gets one.
'file' => ($file instanceof File) ? $file : file_load($file->fid),
'icon_directory' => $icon_directory,
'alt' => !empty($mime_name[$mimetype]) ? $mime_name[$mimetype] : t('File'),
));
// Set "type" attribute per anchor format described at
// http://microformats.org/wiki/file-format-examples
if (!isset($attributes['type'])) {
$attributes['type'] = $file->filemime . '; length=' . $file->filesize;
}
$options = array(
'attributes' => array(
'type' => $file->filemime . '; length=' . $file->filesize,
),
'attributes' => $attributes,
);
// 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);
}
return '<span class="file">' . $icon . ' ' . l($link_text, $url, $options) . '</span>';
}