You are here

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;
}