You are here

function media_youtube_emfield_field_extra in Media: YouTube 6

Implement hook_emfield_field_extra().

File

./media_youtube.module, line 146
Embedded Video Field provider file for YouTube.com.

Code

function media_youtube_emfield_field_extra($op, &$node, $field, &$items, $teaser, $page, $module) {
  if (in_array($op, array(
    'insert',
    'update',
  ))) {

    // Store the metadata for any YouTube videos stored in this field.
    foreach ($items as $delta => $item) {
      if ($item['provider'] == 'youtube') {
        $item['status'] = media_youtube_check_status($item['value']);

        // Store the metadata for the video if we don't already have it.
        if (!db_result(db_query("SELECT value FROM {media_youtube_metadata} WHERE value = '%s'", $item['value']))) {
          $item['last_touched'] = time();
          drupal_write_record('media_youtube_metadata', $item);
        }

        // Delete any existing associations for this field delta.
        db_query("DELETE FROM {media_youtube_node_data} WHERE value = '%s' AND vid = %d AND field_name = '%s' AND delta = %d", $item['value'], $node->vid, $field['field_name'], $delta);

        // Associate this field delta to the specific metadata.
        $item['vid'] = $node->vid;
        $item['field_name'] = $field['field_name'];
        $item['delta'] = $delta;
        drupal_write_record('media_youtube_node_data', $item);
      }
    }
  }
}