image_link_to_file.module in Image link to file 7
Image link to file
File
image_link_to_file.moduleView source
<?php
/**
* @file
* Image link to file
*/
/**
* Implements hook_field_formatter_info().
*/
function image_link_to_file_field_formatter_info() {
return array(
'image_link_to_file' => array(
'label' => t('Image linked to file'),
'field types' => array(
'image',
),
'settings' => array(
'img_style' => NULL,
'img_link' => NULL,
'new_tab' => FALSE,
),
'description' => t('Displays an image linked to a file field.'),
),
);
}
/**
* Implements hook_field_formatter_settings_summary().
*/
function image_link_to_file_field_formatter_settings_summary($field, $instance, $view_mode) {
$display = $instance['display'][$view_mode];
$settings = $display['settings'];
$summary = '';
$styles = image_style_options();
if (isset($settings['img_link'])) {
$file_field = field_info_instance($instance['entity_type'], $settings['img_link'], $instance['bundle']);
$file_field_label = $file_field['label'];
}
else {
$file_field_label = '';
}
if ($display['type'] == 'image_link_to_file') {
$summary = t('Image style: @style<br />Image linked to: @doc @newtab', array(
'@style' => isset($settings['img_style']) ? $styles[$settings['img_style']] : '',
'@doc' => $file_field_label ? $file_field_label : t('<nothing>'),
'@newtab' => $settings['new_tab'] ? t('(in a new win or tab)') : '',
));
}
return $summary;
}
/**
* Implements hook_field_formatter_settings_form().
*/
function image_link_to_file_field_formatter_settings_form($field, $instance, $view_mode, $form, &$form_state) {
$display = $instance['display'][$view_mode];
$settings = $display['settings'];
$all_fields = field_info_instances($instance['entity_type'], $instance['bundle']);
$file_fields = array();
foreach ($all_fields as $fld) {
$fld_info = field_info_field($fld['field_name']);
if ($fld_info['type'] == 'file') {
$file_fields[$fld['field_name']] = $fld['label'];
}
}
$element = array();
if ($display['type'] == 'image_link_to_file') {
$element['img_style'] = array(
'#title' => t('Image style'),
'#type' => 'select',
'#options' => image_style_options(),
'#default_value' => $settings['img_style'],
'#empty_option' => t('None (original image)'),
'#required' => FALSE,
);
$element['img_link'] = array(
'#title' => t('Image link'),
'#type' => 'select',
'#options' => $file_fields,
'#default_value' => $settings['img_link'],
'#empty_option' => t('No link'),
'#required' => FALSE,
);
$element['new_tab'] = array(
'#title' => t('Open image in a new window or tab'),
'#type' => 'checkbox',
'#default_value' => $settings['new_tab'],
);
}
return $element;
}
/**
* Implements hook_field_formatter_view().
*/
function image_link_to_file_field_formatter_view($obj_type, $object, $field, $instance, $langcode, $items, $display) {
$settings = $display['settings'];
$file_field_name = $settings['img_link'];
if ($file_field_name) {
$file_items = field_get_items($obj_type, $object, $file_field_name);
// Select only the first field.
$file_item = $file_items[0];
$file_uri = file_create_url($file_item['uri']);
}
$element = array();
if ($display['type'] == 'image_link_to_file') {
foreach ($items as $delta => $item) {
$element[$delta] = array(
'#theme' => 'image_formatter',
'#item' => $item,
'#image_style' => $settings['img_style'],
'#path' => isset($file_item) && $file_item ? array(
'path' => $file_uri,
'options' => array(
'html' => TRUE,
'attributes' => array(
'target' => $settings['new_tab'] ? '_blank' : '_self',
),
),
) : NULL,
);
}
}
return $element;
}
/**
* Implements hook_help().
*/
function image_link_to_file_help($path, $arg) {
switch ($path) {
case 'admin/help#image_link_to_file':
// Return a line-break version of the module README.txt.
return check_markup(file_get_contents(dirname(__FILE__) . "/README.txt"));
}
}
Functions
Name![]() |
Description |
---|---|
image_link_to_file_field_formatter_info | Implements hook_field_formatter_info(). |
image_link_to_file_field_formatter_settings_form | Implements hook_field_formatter_settings_form(). |
image_link_to_file_field_formatter_settings_summary | Implements hook_field_formatter_settings_summary(). |
image_link_to_file_field_formatter_view | Implements hook_field_formatter_view(). |
image_link_to_file_help | Implements hook_help(). |