You are here

function brightcove_media_list in Brightcove Video Connect 7.2

Same name and namespace in other branches
  1. 7.7 brightcove_media/brightcove_media.module \brightcove_media_list()
  2. 7.3 brightcove_media/brightcove_media.module \brightcove_media_list()
  3. 7.4 brightcove_media/brightcove_media.module \brightcove_media_list()
  4. 7.6 brightcove_media/brightcove_media.module \brightcove_media_list()
1 string reference to 'brightcove_media_list'
brightcove_media_menu in brightcove_media/brightcove_media.module
Implements hook_menu().

File

brightcove_media/brightcove_media.module, line 389

Code

function brightcove_media_list() {
  global $user;
  module_load_include('browser.inc', 'media', 'includes/media');
  $default_items_per_page = 20;
  $params = drupal_get_query_parameters();
  $limit = isset($params['limit']) ? $params['limit'] : $default_items_per_page;
  $start = isset($params['start']) ? ceil($params['start'] / $limit) : 0;
  $media = array();
  $bc = brightcove_initialize();
  $bc_find_params = array();
  if (isset($params['filter'])) {
    switch ($params['filter']['search']) {
      case 'tags':
        $method = 'find_videos_by_tags';
        $bc_find_params = array(
          'or_tags' => $params['filter']['keywords'],
        );
        break;
      case 'and_tags':
        $method = 'find_videos_by_tags';
        $bc_find_params = array(
          'and_tags' => $params['filter']['keywords'],
        );
        break;
      case 'name':
      default:
        $method = 'find_videos_by_text';
        $bc_find_params = array(
          'text' => join(' ', explode(',', $params['filter']['keywords'])),
        );
        break;
    }
  }
  else {
    $method = 'find_all_videos';
  }
  $result = NULL;
  try {
    $bc_find_params['page_size'] = $limit;
    $bc_find_params['page_number'] = $start;
    $result = $bc
      ->find($method, $bc_find_params);
    if (count($result)) {
      foreach ($result as $video) {
        $file = (object) array(
          'fid' => "v{$video->id}",
          'uid' => $user->uid,
          'filename' => check_plain($video->name),
          'uri' => "brightcove://{$video->id}",
          'filemime' => 'media/brightcove',
          'filesize' => 0,
          'status' => 1,
          'type' => 'video',
        );
        media_browser_build_media_item($file);
        $media[] = $file;
      }
    }
  } catch (Exception $e) {
    watchdog('brightcove', 'Retrieving media list failed.', array(), WATCHDOG_ERROR);
  }
  drupal_json_output(array(
    'media' => $media,
  ));
  exit;
}