prettyphoto_formatters_link.module in prettyPhoto Formatters 7
prettyPhoto Link formatter hooks and callbacks.
File
modules/prettyphoto_formatters_link/prettyphoto_formatters_link.moduleView source
<?php
/**
* @file
* prettyPhoto Link formatter hooks and callbacks.
*/
/**
* Implements hook_field_formatter_info().
*/
function prettyphoto_formatters_link_field_formatter_info() {
$formatters = array();
$formatters['prettyphoto_link_default'] = array(
'label' => t('prettyPhoto: Modal with iFrame'),
'field types' => array(
'link_field',
),
'settings' => array(
'iframe_width' => '100%',
'iframe_height' => '100%',
),
);
return $formatters;
}
/**
* Implements hook_field_formatter_settings_form().
*/
function prettyphoto_formatters_link_field_formatter_settings_form($field, $instance, $view_mode, $form, &$form_state) {
$display = $instance['display'][$view_mode];
$settings = $display['settings'];
if ($display['type'] == 'prettyphoto_link_default') {
$element['iframe_width'] = array(
'#type' => 'textfield',
'#title' => t('iFrame width'),
'#size' => 10,
'#default_value' => $settings['iframe_width'],
);
$element['iframe_height'] = array(
'#type' => 'textfield',
'#title' => t('iFrame height'),
'#size' => 10,
'#default_value' => $settings['iframe_height'],
);
}
return $element;
}
/**
* Implements hook_field_formatter_settings_summary().
*/
function prettyphoto_formatters_link_field_formatter_settings_summary($field, $instance, $view_mode) {
$display = $instance['display'][$view_mode];
$settings = $display['settings'];
if ($display['type'] == 'prettyphoto_link_default') {
$summary = t('iFrame width: @width, iFrame height: @height', array(
'@width' => $settings['iframe_width'],
'@height' => $settings['iframe_height'],
));
return $summary;
}
}
/**
* Implements hook_field_formatter_view().
*/
function prettyphoto_formatters_link_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
$elements = array();
foreach ($items as $delta => $item) {
$iframe_width = array_key_exists('iframe_width', $display['settings']) ? $display['settings']['iframe_width'] : '100%';
$iframe_height = array_key_exists('iframe_height', $display['settings']) ? $display['settings']['iframe_height'] : '100%';
$elements[$delta] = array(
'#theme' => 'prettyphoto_formatters_link',
'#element' => $item,
'#field' => $instance,
'#display' => $display,
'#iframe_width' => check_plain($iframe_width),
'#iframe_height' => check_plain($iframe_height),
);
$title = $elements[$delta]['#element']['title'];
$url = $elements[$delta]['#element']['url'];
$elements[$delta]['#element']['title'] = check_plain($title);
$elements[$delta]['#element']['url'] = check_url($url);
}
return $elements;
}
/**
* Implements hook_theme().
*/
function prettyphoto_formatters_link_theme($existing, $type, $theme, $path) {
$theme = array();
$theme['prettyphoto_formatters_link'] = array(
'variables' => array(
'element' => NULL,
'field' => NULL,
'display' => NULL,
'iframe_width' => NULL,
'iframe_height' => NULL,
),
);
foreach ($theme as &$array) {
$array['file'] = 'prettyphoto_formatters_link.formatter.inc';
}
return $theme;
}