You are here

function field_kaltura_create_node in Kaltura 6.2

Make sure there is an entry in the node_kaltura table for mixes that are in fields, so we have a common place to store metadata.

1 call to field_kaltura_create_node()
field_kaltura_field in plugins/field_kaltura/field_kaltura.module
Implementation of hook_field().

File

plugins/field_kaltura/field_kaltura.module, line 226
kaltura integration module - functions to provide kaltura as CCK field

Code

function field_kaltura_create_node($node, $items, $type) {
  $kaltura_client = KalturaHelpers::getKalturaClient();
  $session_user = KalturaHelpers::getSessionUser();
  if ($kaltura_client) {
    foreach ($items as $item) {
      $entries = explode(',', rtrim($item['value'], ','));
      foreach ($entries as $entry_id) {

        //TO DO: CM  - add Kaltura error handling
        try {
          if ($type == 'Kaltura_Media') {
            $result = $kaltura_client->media
              ->get($entry_id);
          }
          else {

            // Mix
            $result = $kaltura_client->mixing
              ->get($entry_id);
          }
        } catch (Exception $ex) {
          watchdog('field_kaltura', t('Kaltura Exception: %message, backtrace: <pre>!trace</pre>'), array(
            '%message' => $ex
              ->getMessage(),
            '!trace' => $ex
              ->getTrace(),
          ));
          switch ($ex
            ->getCode()) {
            case 'ENTRY_ID_NOT_FOUND':
              form_set_error($error_element, t('Entry not found on Kaltura server: @message', array(
                '@message' => $ex
                  ->getMessage(),
              )));
              break;
            default:
              form_set_error($error_element, t('Kaltura client exception: @message', array(
                '@message' => $ex
                  ->getMessage(),
              )));
          }
        }
        $node_kaltura->nid = $node->nid;
        $node_kaltura->vid = $node->vid;
        $node_kaltura->kaltura_entryId = $result->id;
        $node_kaltura->kaltura_media_type = $result->type;
        $node_kaltura->kstatus = $result->status;
        $node_kaltura->kaltura_thumbnail_url = $result->thumbnailUrl;
        $node_kaltura->kaltura_duration = $result->duration;
        $node->kaltura_partner_data = $result->partnerData;
        $node->kaltura_source = '';
        $node->kaltura_source_id = '';
        $node->kaltura_source_link = '';
        $node->kaltura_width = '';
        $node->kaltura_height = '';
        $node->kaltura_download_url = $result->downloadUrl;
        $node->kaltura_media_date = '';
        $node->kaltura_views = $result->views;
        $node->kaltura_plays = $result->plays;
        $node->kaltura_votes = $result->votes;
        $node->kaltura_rank = $result->rank;
        $node->kaltura_total_rank = $result->totalRank;

        //TO DO: CM

        //add extras here like node_kaltura module
        field_kaltura_field_insert($node_kaltura);
      }
    }
  }
}