You are here

function brightcove_media_media_element_process in Brightcove Video Connect 7.2

Same name and namespace in other branches
  1. 7.3 brightcove_media/brightcove_media.module \brightcove_media_media_element_process()
  2. 7.4 brightcove_media/brightcove_media.module \brightcove_media_media_element_process()
1 string reference to 'brightcove_media_media_element_process'
brightcove_media_element_info_alter in brightcove_media/brightcove_media.module
Implements hook_element_info_alter().

File

brightcove_media/brightcove_media.module, line 485

Code

function brightcove_media_media_element_process(&$element, &$form_state) {
  global $user;
  if (isset($element['#value']['fid']) && strpos($element['#value']['fid'], 'v') === 0) {
    $video_id = substr($element['#value']['fid'], 1);
    $candidates = file_load_multiple(array(), array(
      'uri' => "brightcove://{$video_id}",
    ));
    if (count($candidates)) {
      $element['#value']['fid'] = array_shift($candidates)->fid;
    }
    else {
      $handler = new MediaInternetBrightcoveHandler($video_id);
      if (!isset($_SESSION['brightcove']["video_just_uploaded_{$user->uid}"])) {
        $bc = brightcove_initialize();
        try {
          $result = $bc
            ->find('find_video_by_id', $video_id);
          if (count($result)) {
            $file = (object) $result;
            $_SESSION['brightcove']["selected_video_{$user->uid}"] = $file;
          }
        } catch (Exception $e) {
          watchdog('brightcove', 'Retrieving media list failed.', array(), WATCHDOG_ERROR);
        }
      }
      $element['#value']['fid'] = $handler
        ->save()->fid;
    }
    form_set_value($element, $element['#value'], $form_state);
  }
  return $element;
}