You are here

function kaltura_import_entries_page in Kaltura 7.2

Same name and namespace in other branches
  1. 5 includes/kaltura.admin.inc \kaltura_import_entries_page()
  2. 6.2 includes/kaltura.admin.inc \kaltura_import_entries_page()
  3. 6 includes/kaltura.admin.inc \kaltura_import_entries_page()

Callback function for url 'admin/settings/kaltura/import'.

TODO: This function should be thoroughly examined. Some weird stuff takes place.

@changes

  • KalturaEntryFilter changed to KalturaMediaEntryFilter;
  • this may need some reworking;
1 string reference to 'kaltura_import_entries_page'
kaltura_menu in ./kaltura.module
Implements hook_menu().

File

includes/kaltura.admin.inc, line 728
Contains functions for administration use of the kaltura core module.

Code

function kaltura_import_entries_page() {

  // Initialize variables.
  $entries = array();
  $entries_need_import = array();
  $each_page = 30;
  $total = 0;
  $media_total = 0;
  $finished = FALSE;
  $current_page = 1;
  $pager = '';
  if (isset($_POST['import_selected']) && isset($_POST['entries_to_import'])) {
    kaltura_import_entries($_POST['entries_to_import']);
    drupal_goto('admin/config/media/kaltura/import');
  }
  if (!variable_get('kaltura_partner_id')) {
    return t('You have not configured your partner details yet. Import cannot be performed until you setup your partner details');
  }
  if (empty($_GET['p'])) {
    $_GET['p'] = 1;
  }
  else {
    $current_page = $_GET['p'];
  }
  set_time_limit(30);
  while (!$finished) {

    // Get the media entries.
    list($media_total, $media_entries) = kaltura_get_my_entries($each_page, $current_page);
    $entries_need_import = array_merge($entries_need_import, $entries, $media_entries);
    $entries_need_import = kaltura_remove_existing_entries($entries_need_import);
    if (count($entries_need_import) >= $each_page) {
      $finished = TRUE;
    }
    if ($media_total < $current_page * $each_page && $total < $current_page * $each_page) {
      $finished = TRUE;
    }
    $current_page++;
  }
  if (!count($entries_need_import)) {
    return t('No entries needed to be imported.');
  }
  if (count($entries_need_import) > $each_page) {
    $multi_dim = array_chunk($entries_need_import, $each_page, TRUE);
    $entries_need_import = $multi_dim[0];
  }
  if ($total + $media_total > $each_page) {
    if ($media_total > 10000) {
      drupal_set_message(t('You have more than 10,000 entries. Not all entries are available for import in this interface. Please contact Kaltura Support for additional assistance'), 'warning');
    }
    $pages = ceil(($total + $media_total) / $each_page);
    $pager = '';
    $start_page = !empty($_GET['p']) ? $_GET['p'] : 1;
    if ($start_page - 5 <= 0) {
      $start_page = 1;
    }
    else {
      $start_page = $start_page - 5;
    }
    if ($pages > 10) {
      $end_page = $start_page + 10 < $pages ? $start_page + 10 : $pages;
      $pager .= l(t('First ...'), 'admin/config/media/kaltura/import') . '&nbsp';
    }
    else {
      $end_page = $pages;
    }
    for ($start = $start_page; $start <= $end_page; $start++) {
      if ($start == $_GET['p']) {
        $pager .= '<span>< ' . $start . ' ></span>';
      }
      else {
        $pager .= l($start, 'admin/config/media/kaltura/import', array(
          'query' => array(
            'p' => $start,
          ),
        ));
      }
      $pager .= '&nbsp;';
    }
    if ($end_page > 10) {
      $pager .= l(t('... Last'), 'admin/config/media/kaltura/import', array(
        'query' => array(
          'p' => $pages,
        ),
      )) . '&nbsp';
    }
  }
  $entries_options = array();
  if (is_array($entries_need_import) && count($entries_need_import)) {
    $ksetings = new KalturaSettings();
    foreach ($entries_need_import as $entry => $details) {
      $entries_options[$details['id']] = $details['name'] . ': ' . '(' . $ksetings->media_types_map[$details['type']] . ') - ' . $details['id'];
    }
  }
  $output = drupal_get_form('kaltura_create_entries_form', $entries_options);
  $output = drupal_render($output);
  return $pager . $output . $pager;
}