function link_iframe_formatter_field_formatter_view in Link iframe formatter 7
Implements hook_field_formatter_view().
File
- ./
link_iframe_formatter.module, line 196 - Defines a formatter that renders a link like an iframe
Code
function link_iframe_formatter_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
$elements = array();
if ($display['type'] == 'link_iframe_formatter_iframe') {
foreach ($items as $delta => $item) {
$url = $item['url'];
if (link_iframe_formatter_check_blacklist($url)) {
// if it's in blacklist, show link only.
$elements[$delta] = array(
'#markup' => theme('link_iframe_formatter_blacklist_notice', array(
'element' => $item,
)),
);
}
else {
//not in blacklist, show url in iframe
$link_options = $item;
$settings = $display['settings'];
unset($link_options['title']);
unset($link_options['url']);
// TODO: if some settings are not set, do set them.
$iframe_element = array(
'#type' => 'html_tag',
'#tag' => 'iframe',
'#attributes' => array(
'name' => check_plain($item['title']),
'src' => url($item['url'], $link_options),
'height' => $settings['height'],
'width' => $settings['width'],
'style' => $settings['style'],
'id' => drupal_html_id('link-iframe-' . $instance['bundle'] . '-' . $instance['field_name'] . '-' . $delta),
'class' => drupal_html_class($settings['class']),
),
'#value' => '',
);
// add original link if set to On.
if ($settings['original']) {
$elements[$delta] = array(
'original' => array(
'#markup' => theme('link_iframe_formatter_original', array(
'element' => $item,
)),
),
'iframe' => $iframe_element,
);
}
else {
$elements[$delta] = $iframe_element;
}
}
}
}
return $elements;
}