function emvideo_field_formatter_view in Asset 7
Implements hook_field_formatter_view().
File
- modules/
emvideo/ emvideo.module, line 162 - Emvideo core module.
Code
function emvideo_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
$element = array();
switch ($display['type']) {
case 'emvideo_video':
foreach ($items as $delta => $item) {
$output = '';
$params = array(
'source' => $item['source'],
'provider' => $item['provider'],
'height' => $display['settings']['height'],
'width' => $display['settings']['width'],
);
foreach (module_implements('emvideo_emcode') as $module) {
$output = module_invoke($module, 'emvideo_emcode', $params);
// If we found proper provider for embed code, stop searching and don't generate default code.
if ($output !== FALSE) {
$element[$delta]['#markup'] = emvideo_fix_src_protocol($output);
break;
continue 2;
}
}
if (!empty($item['source']) && empty($output)) {
$source = emvideo_fix_src_protocol($item['source']);
$output .= '<object type="application/x-shockwave-flash" ';
$output .= 'width="' . $display['settings']['width'] . '" height="' . $display['settings']['height'] . '" data="' . $source . '">' . "\n";
$defaults = array(
'movie' => $source,
'wmode' => 'transparent',
'allowFullScreen' => 'true',
);
foreach ($defaults as $name => $value) {
$output .= ' <param name="' . $name . '" value="' . $value . '" />' . "\n";
}
$output .= '</object>' . "\n";
$element[$delta]['#markup'] = $output;
}
elseif (empty($output)) {
$element[$delta]['#markup'] = emvideo_fix_src_protocol($item['url']);
}
}
break;
case 'emvideo_snapshot':
foreach ($items as $delta => $item) {
$output = '';
if (!empty($item['snapshot'])) {
$attributes = array(
'src' => emvideo_fix_src_protocol($item['snapshot']),
'width' => $display['settings']['width'],
);
if (!empty($display['settings']['class'])) {
$attributes['class'] = array(
$display['settings']['class'],
);
}
$output = '<img' . drupal_attributes($attributes) . ' />';
}
$element[$delta]['#markup'] = $output;
}
break;
}
return $element;
}