_mediamosa_browse_asset_page_view_mediafile_list

Versions
mediamosa-21
_mediamosa_browse_asset_page_view_mediafile_list($asset)

Build the mediafile listing.

Parameters

array $asset

Code

sites/all/modules/mediamosa/maintenance/browse/mediamosa_maintenance_browse_asset.inc, line 546

<?php
function _mediamosa_browse_asset_page_view_mediafile_list($asset) {

  // Get the asset_id.
  $asset_id = $asset[mediamosa_asset_db::ID];

  // Get job list uri.
  $uri = strtr('asset/@asset_id/mediafile', array('@asset_id' => $asset_id));

  // Do REST call.
  $result = mediamosa_response_connector::static_do_restcall($uri);

  // Get Items count.
  $item_count = count($result['items']);

  // Cache rights.
  $may_delete = user_access(mediamosa_settings::MEDIAMOSA_PERMISSION_DELETE_MEDIAMOSA_MEDIAFILES);
  $may_analyse = user_access(mediamosa_settings::MEDIAMOSA_PERMISSION_ANALYSE_MEDIAMOSA_MEDIAFILES);
  $may_download = user_access(mediamosa_settings::MEDIAMOSA_PERMISSION_DOWNLOAD_MEDIAMOSA_MEDIAFILES);

  $allowed_still_fields = array(
    'mediafile_id',
    'file_extension',
    'created',
    'width',
    'height',
    'filesize',
    'mime_type',
    'still_time_code',
    'still_order',
    'still_format',
    'still_type',
    'still_default',
    'still_ticket',
  );

  $build = array();
  foreach ($result['items'] as $item) {
    $actions = array();

    $actions[] = '<b>' . trim($item['filename']) . '</b>';
    $actions[] = $may_delete ? l('Delete', strtr('admin/mediamosa/asset/@asset_id/mediafile/@mediafile_id/delete', array('@asset_id' => $item['asset_id'], '@mediafile_id' => $item['mediafile_id']))) : t('No delete right');
    $actions[] = $may_analyse ? l('Analyze', strtr('admin/mediamosa/asset/@asset_id/mediafile/@mediafile_id/analyse', array('@asset_id' => $item['asset_id'], '@mediafile_id' => $item['mediafile_id']))) : t('No analyse right');
    $actions[] = $may_download ? l('Download', strtr('admin/mediamosa/asset/@asset_id/mediafile/@mediafile_id/download', array('@asset_id' => $item['asset_id'], '@mediafile_id' => $item['mediafile_id']))) : t('No download right');
    $caption = implode(' - ', $actions);

    // Mediafile properties.
    $rows = array();
    $rows[] = array(t('Mediafile id'), $item['mediafile_id']);
    $rows[] = array(t('Owner id'), $item['owner_id']);
    $rows[] = array(t('Group id'), $item['group_id']);
    $rows[] = array(t('Mime Type'), $item['metadata']['mime_type']);
    $rows[] = array(t('Container'), $item['metadata']['container_type'] ? $item['metadata']['container_type'] .' @ '. $item['metadata']['bitrate'] .'kbps' : '');
    $rows[] = array(t('Width * Height @ fps'), $item['metadata']['width'] ? $item['metadata']['width'] .'px * '. $item['metadata']['height'] .'px @ '. $item['metadata']['fps'] .'fps' : '');
    $rows[] = array(t('Duration'), $item['metadata']['file_duration']);
    $rows[] = array(t('Filesize'), ($item['metadata']['filesize']) ? format_size($item['metadata']['filesize']) : '');
    $rows[] = array(t('Video information'), ($item['metadata']['video_codec']) ? $item['metadata']['video_codec'] .' @ '. $item['metadata']['bitrate'] .'kbps ('. $item['metadata']['colorspace'] .')' : '');
    $rows[] = array(t('MP4 hinted'), $item['metadata']['is_hinted']);
    $rows[] = array(t('FLV metadated'), $item['metadata']['is_inserted_md']);
    $rows[] = array(t('Original'), $item['is_original_file']);
    $rows[] = array(t('Downloadable'), $item['is_downloadable']);
    $rows[] = array(t('Audio information'), ($item['metadata']['audio_codec']) ? $item['metadata']['audio_codec'] .' @ '. $item['metadata']['sample_rate'] .'Hz' .' ('. $item['metadata']['channels'] .')': '');
    $rows[] = array(t('Protected'), $item['is_protected']);

    // Uri REST call.
    $uri = strtr('mediafile/@mediafile_id/acl', array('@mediafile_id' => $item['mediafile_id']));

    $result = mediamosa_response_connector::static_do_restcall($uri, 'GET', array('user_id' => $item['owner_id'], 'app_id' => $item['app_id']));
    if (mediamosa_response_connector::static_result_okay($result)) {
      $rows_aut = array();
      foreach ($result['items'] as $item_values) {
        foreach ($item_values as $name => $value) {
          $rows_aut[$name][] = $value;
        }
      }

      $rows_aut2 = array();
      foreach ($rows_aut as $name => $values) {
        $rows_aut2[] = array(t(_mediamosa_browse_fix_metadata_name($name)), implode(', ', $values));
      }

      $rows[] = array(t('Autorisarion rules'), theme('table', array('rows' => $rows_aut2)));
    }

    // Uri REST call.
    $uri = strtr('mediafile/@mediafile_id', array('@mediafile_id' => $item['mediafile_id']));

    $still_result = mediamosa_response_connector::static_do_restcall($uri, 'GET', array('app_id' => $item['app_id']));
    if (mediamosa_response_connector::static_result_okay($still_result)) {
      $mediafile = reset($still_result['items']);

      if (isset($mediafile['still'])) {
        foreach ($mediafile['still'] as $still_item) {
          $still_header = array();
          $still_rows = array();
          $still_ticket = NULL;

          foreach ($still_item as $still_key => $still_det) {

            if (in_array($still_key, $allowed_still_fields)) {
              $still_rows[] = array(
                $still_key == 'mediafile_id' ? 'still_id' : $still_key,
                $still_det,
              );

              if ($still_key == 'still_ticket') {
                $still_ticket = $still_det;
              }
            }
          }

          $rows[] = array(
            t('Still') . '<br />' . ($still_ticket ? theme('image', $still_ticket, '', '', array('width' => 200, 'height' => NULL,), FALSE) : ''),
            theme('table', array('header' => $still_header, 'rows' => $still_rows)),
          );
        }
      }
    }

    $build[] = theme('table', array('caption' => $caption, 'rows' => $rows));
  }

  // Add text when no mediafiles where found...
  if (!$item_count) {
    $build[] = t('This asset does not contain mediafiles.');
  }

  return '<p><h2>' . t('Mediafiles (@count)', array('@count' => $item_count)) . '</h2>' . implode('', $build) . '</p>';
}
?>