function video_embed_field_field_formatter_prepare_view in Video Embed Field 7
Implementation of hook_field_formatter_prepare_view Prepare the view of the video embed - if the embed code doesn't exist, create it using the url
File
- ./
video_embed_field.module, line 186
Code
function video_embed_field_field_formatter_prepare_view($entity_type, $entities, $field, $instances, $langcode, &$items, $displays) {
$handlers = video_embed_get_handlers();
foreach ($items as $delta => $item_wrapper) {
foreach ($item_wrapper as $key => $item) {
if (!stristr($item['video_url'], 'http://') && !stristr($item['video_url'], 'https://')) {
$item['video_url'] = 'http://' . $item['video_url'];
}
$parts = parse_url($item['video_url']);
//make sure bad data won't mess everything up
if (!isset($parts['host'])) {
$items[$delta][$key]['embed_code'] = l($item['video_url'], $item['video_url']);
return;
}
$host = $parts['host'];
if (stripos($host, 'www.') > -1) {
$host = substr($host, 4);
}
//make our host all lowercase so that it'll properly match the index
$host = strtolower($host);
if (isset($handlers[$host]['function']) && function_exists($handlers[$host]['function'])) {
//get what type of display it is
$display = $displays[$delta]['type'];
if (isset($instances[$delta]['settings']['playback_settings'])) {
$settings = $instances[$delta]['settings']['playback_settings'][$handlers[$host]['title']];
$settings = array_merge($handlers[$host]['defaults'], $settings);
}
else {
$settings = $handlers[$host]['defaults'];
}
if ($display == 'video_embed_field_formatter_teaser') {
$items[$delta][$key]['embed_code'] = call_user_func($handlers[$host]['function'], $item['video_url'], $settings, 'teaser');
}
else {
if ($display == 'video_embed_field_formatter_image_small') {
$items[$delta][$key]['embed_code'] = call_user_func($handlers[$host]['function'], $item['video_url'], $settings, 'image', 'small');
}
else {
if ($display == 'video_embed_field_formatter_image_medium') {
$items[$delta][$key]['embed_code'] = call_user_func($handlers[$host]['function'], $item['video_url'], $settings, 'image', 'medium');
}
else {
if ($display == 'video_embed_field_formatter_image_large') {
$items[$delta][$key]['embed_code'] = call_user_func($handlers[$host]['function'], $item['video_url'], $settings, 'image', 'large');
}
else {
$items[$delta][$key]['embed_code'] = call_user_func($handlers[$host]['function'], $item['video_url'], $settings);
}
}
}
}
}
else {
$items[$delta][$key]['embed_code'] = l($item['video_url'], $item['video_url']);
}
}
}
}