kaltura.module in Kaltura 7.2
Same filename and directory in other branches
Kaltura integration module - core functions.
File
kaltura.moduleView source
<?php
/**
* @file
* Kaltura integration module - core functions.
*/
/**
* @todo Add docs for all constants.
*/
define('KALTURASETTINGS_SERVER_URL', "http://www.kaltura.com");
define('KALTURASETTINGS_UICONF_ID', 600);
define('KALTURASETTINGS_BASE_WIDGET_ID', 600);
define('KALTURASETTINGS_ANONYMOUS_USER_ID', "Anonymous");
define('KALTURASETTINGS_CW_UICONF_ID', 4396241);
define('KALTURASETTINGS_CW_UICONF_ID_AUDIO', 4396051);
define('KALTURASETTINGS_CW_UICONF_ID_IMAGE', 4396061);
define('KALTURASETTINGS_CW_UICONF_ID_VIDEO', 4396041);
define('KALTURASETTINGS_DEFAULT_VIEWPLAYLIST_UICONF', 1292302);
define('KALTURASETTINGS_CW_UICONF_ID_SIMPLE', 1103);
define('KALTURASETTINGS_DEFAULT_EDITOR', 'Simple_Editor');
define('KALTURASETTINGS_SE_UICONF_ID', 603);
define('KALTURASETTINGS_SE_URL', 'kaltura/simple_editor');
define('KALTURASETTINGS_SE_WIDTH', 890);
define('KALTURASETTINGS_SE_HEIGHT', 546);
define('KALTURASETTINGS_SE_CUSTOM', 1);
define('KALTURASETTINGS_AE_UICONF_ID', 1000865);
define('KALTURASETTINGS_AE_URL', 'kaltura/advanced_editor');
define('KALTURASETTINGS_AE_WIDTH', 830);
define('KALTURASETTINGS_AE_HEIGHT', 690);
define('KALTURASETTINGS_AE_CUSTOM', 2);
define('KALTURASETTINGS_CW_COMMENTS_UICONF_ID', 4396231);
define('KALTURASETTINGS_DRUPAL_STATS_URL', "http://corp.kaltura.com/stats/drupal/");
define('KALTURASETTINGS_DEFAULT_VIDEO_PLAYER_UICONF', 'dark');
define('KALTURASETTINGS_DEFAULT_AUDIO_PLAYER_UICONF', 'dark');
define('KALTURASETTINGS_DEFAULT_VIEWPLAYLIST_PLAYER_UICONF', 'dark');
define('KALTURASETTINGS_DEFAULT_RC_PLAYER_UICONF', 'dark');
define('KALTURASETTINGS_DEFAULT_COMMENT_PLAYER_UICONF', 'dark');
/**
* Indicates the Video media type.
*/
define('KALTURA_MEDIA_TYPE_VIDEO', 1);
/**
* Indicates the Image media type.
*/
define('KALTURA_MEDIA_TYPE_IMAGE', 2);
/**
* Indicates the Audio media type.
*/
define('KALTURA_MEDIA_TYPE_AUDIO', 5);
/**
* Indicates the Remix media type.
*/
define('KALTURA_MEDIA_TYPE_REMIX', 6);
/**
* Returns a URL prefix for thumbnails.
*
* @return string
* URL prefix.
*/
function _kaltura_thumbnail_base_url() {
if (variable_get('kaltura_partner_id', '') != '') {
$server_url = variable_get('kaltura_server_url', '') != '' ? variable_get('kaltura_server_url', '') : KALTURASETTINGS_SERVER_URL;
return $server_url . '/p/' . variable_get('kaltura_partner_id', '') . '/sp/' . variable_get('kaltura_subp_id', '') . '/thumbnail';
}
}
/**
* Implements hook_libraries_info().
*/
function kaltura_libraries_info() {
// Kaltura client (PHP5) library.
// Expected to be extracted into 'sites/all/libraries/KalturaClient'.
$libraries['KalturaClient'] = array(
'name' => 'Kaltura Client',
'vendor url' => 'http://www.kaltura.com/',
'download url' => 'http://www.kaltura.com/api_v3/testme/client-libs.php',
'version arguments' => array(
'file' => 'KalturaClient.php',
'pattern' => '/\\$apiVersion = \'(.+)\';/',
'lines' => -1,
),
'files' => array(
'php' => array(
'KalturaClient.php',
),
),
);
return $libraries;
}
/**
* Implements hook_permission().
*/
function kaltura_permission() {
return array(
'administer kaltura' => array(
'title' => t('Administer Kaltura'),
),
'access kaltura widgets' => array(
'title' => t('Access Kaltura widgets'),
),
'view Kaltura embed code' => array(
'title' => t('View Kaltura embed code'),
),
'edit kaltura metadata' => array(
'title' => t('Edit Kaltura metadata'),
),
);
}
/**
* Implements hook_menu().
*/
function kaltura_menu() {
$items['admin/config/media/kaltura'] = array(
'title' => 'Kaltura module settings',
'description' => 'Check on the server integration status with Kaltura, import entries from Kaltura, see existing media and edit metadata and additional configuration options.',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'kaltura_registration_form',
),
'access arguments' => array(
'administer site configuration',
),
'file' => 'includes/kaltura.admin.inc',
'type' => MENU_NORMAL_ITEM,
'weight' => -10,
);
$items['admin/config/media/kaltura/general'] = array(
'title' => 'General',
'type' => MENU_DEFAULT_LOCAL_TASK,
'weight' => 0,
);
$items['admin/config/media/kaltura/settings'] = array(
'title' => 'Kaltura settings',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'kaltura_settings_form',
),
'access arguments' => array(
'administer kaltura',
),
'file' => 'includes/kaltura.admin.inc',
'type' => MENU_LOCAL_TASK,
'weight' => 1,
);
$items['admin/config/media/kaltura/import'] = array(
'title' => 'Importing Entries from Kaltura to Drupal',
'description' => 'import your partner\'s entries from kaltura\'s server to drupal, as nodes',
'page callback' => 'kaltura_import_entries_page',
'access arguments' => array(
'administer kaltura',
),
'file' => 'includes/kaltura.admin.inc',
'type' => MENU_LOCAL_TASK,
'weight' => 2,
);
$items['admin/config/media/kaltura/entries'] = array(
'title' => 'List of Kaltura Items',
'page callback' => 'kaltura_list_entries',
'access arguments' => array(
'administer kaltura',
),
'type' => MENU_LOCAL_TASK,
'weight' => 3,
);
$items['kaltura/notification_handler'] = array(
'title' => 'Drupal Notification Handler',
'file' => 'includes/kaltura.notification.inc',
'page callback' => 'kaltura_notification_handler',
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
$items['kaltura/%ctools_js/metadata_editor/%'] = array(
'title' => 'Metadata Editor',
'page callback' => 'kaltura_metadata_editor',
'page arguments' => array(
1,
3,
),
'access arguments' => array(
'edit kaltura metadata',
),
'type' => MENU_CALLBACK,
);
$items['kaltura/%ctools_js/kcw/%'] = array(
'title' => 'Add Kaltura Media',
'page callback' => 'kaltura_uploader',
'page arguments' => array(
1,
3,
),
'access arguments' => array(
'access kaltura widgets',
),
'type' => MENU_CALLBACK,
);
$items['kaltura/%ctools_js/existing/%'] = array(
'title' => 'Add from existing entries',
'page callback' => 'kaltura_existing',
'page arguments' => array(
1,
3,
4,
5,
),
'access arguments' => array(
'access kaltura widgets',
),
'type' => MENU_CALLBACK,
);
return $items;
}
/**
* Implements hook_theme().
*/
function kaltura_theme() {
$themes = array(
'kaltura_contribution_wizard_field' => array(
'variables' => array(
'theme_params' => NULL,
'field_id' => NULL,
'no_collect_entries' => NULL,
'kshow_id' => NULL,
'add_filter' => 1,
),
'file' => 'includes/kaltura.themeing.inc',
),
'kaltura_maintenance_page' => array(
'variables' => array(
'text' => '',
),
'file' => 'includes/kaltura.themeing.inc',
),
);
return $themes;
}
/**
* Implements module_invoke().
*
* Used to call hooks exposed by kaltura which other module implements.
*/
function kaltura_invoke($hook, $data = NULL) {
$hook = 'kaltura_' . $hook;
$return = module_invoke_all($hook, $data);
return $return;
}
/**
* Implements hook_node_update_index().
*/
function kaltura_node_update_index($node) {
// Add kaltura metadata to node search index.
$text = '';
$lang = $node->language;
// Get all fields of field_kaltura_entryid type.
$fields = field_read_fields(array(
'type' => 'field_kaltura_entryid',
));
foreach (array_keys($fields) as $field) {
if (!empty($node->{$field}[$lang])) {
foreach ($node->{$field}[$lang] as $item) {
$qry = db_select('node_kaltura', 'k')
->fields('k', array(
'kaltura_tags',
'kaltura_title',
'kaltura_description',
))
->condition('kaltura_entryid', $item['entryid'])
->execute()
->fetchAssoc();
$text .= ($text ? ',' : '') . implode(',', $qry);
}
}
}
return $text;
}
/**
* Kaltura uploader.
*
* Ctools ajax callback function for the KCW.
*
* @param mixed $js
* ctools var to see if js is enabled or not
* @param mixed $jvars
* JSON encoded parameters
*
* @return string
*/
function kaltura_uploader($js, $jvars) {
if (!$js) {
return t('We need javascript make this work please check that you have javascript enabled');
}
ctools_include('modal');
ctools_include('ajax');
if (!variable_get('kaltura_partner_id')) {
$error_message = t('You must configure partner\'s details first.') . ' ' . l(t('Click here'), 'admin/config/media/kaltura');
ctools_modal_render(t('Error'), $error_message);
exit;
}
try {
$k_helpers = new KalturaHelpers();
$kaltura_client = $k_helpers
->getKalturaClient();
} catch (Exception $e) {
watchdog_exception('kaltura', $e);
drupal_set_message(t('Failed to start Kaltura session. Please check your settings.'), 'error');
return NULL;
}
$vars = drupal_json_decode($jvars);
drupal_add_js(drupal_get_path('module', 'kaltura') . '/js/swfobject.js');
drupal_add_js(array(
'entries-modal-style' => array(
'modalSize' => array(
'type' => 'scale',
'width' => 0.8,
'height' => 0.8,
),
),
), 'setting');
// Should be configurable.
$theme_params['width'] = 680;
$theme_params['height'] = 360;
$theme_params['swfurl'] = $k_helpers
->getContributionWizardUrl($vars['ui_conf']);
$flash_vars = $k_helpers
->getContributionWizardFlashVars($kaltura_client
->getKs(), $vars['kshow_id'], $vars['partner_data'], $vars['type'], FALSE, FALSE, $vars['ui_conf']);
$theme_params['flashVarsStr'] = $k_helpers
->flashVarsToString($flash_vars);
$theme_vars = array(
'theme_params' => $theme_params,
'field_id' => $vars['field_id'],
'no_collect_entries' => $vars['no_collect_entries'],
'kshow_id' => $vars['kshow_id'],
'filter' => $vars['wtype'],
);
$output = theme('kaltura_contribution_wizard_field', $theme_vars);
$b_text = rawurldecode($vars['button_text']);
ctools_modal_render(t($b_text), $output);
}
/**
* Ctools callback function for adding existing media that is all ready in the drupal db.
*
* @param mixed $js
* is js enabled
* @param mixed $field_name
* the name of the field that will be populated
* @param mixed $widget
* the widget type so we can filter the media type
* @param mixed $cw_vars
*
* @return string
*/
function kaltura_existing($js, $field_name, $widget, $cw_vars) {
if (!$js) {
return '<div>' . t('We really need javascript for this one') . '</div>';
}
drupal_add_css(drupal_get_path('module', 'kaltura') . '/style/kaltura_entries.css');
ctools_include('modal');
ctools_include('ajax');
$mtype = kaltura_widget_to_media_type($widget);
$args[] = $mtype ? $mtype : NULL;
$widget_vars = drupal_json_decode($cw_vars);
$out = '';
if ($widget_vars['add_existing'] == 'both') {
$out = '<div class="kcw-button">' . ctools_modal_text_button(t('Add New'), 'kaltura/nojs/kcw/' . $cw_vars, t('Add New Media'), 'ctools-modal-kcw-modal-style') . '</div>';
}
if (!empty($args[0])) {
$view = views_get_view('kaltura_existing_one_type');
$view
->set_arguments($args);
}
else {
$view = views_get_view('kaltura_existing');
}
$out .= $view
->preview('default');
$b_text = rawurldecode($widget_vars['button_text']);
ctools_modal_render(t($b_text), $out);
}
/**
* Implements hook_views_post_render().
*/
function kaltura_views_post_render(&$view, &$output, &$cache) {
// TODO: Figure out why does he use so strange approach to check the view name.
if (strpos($view->name, 'kaltura_existing') === 0) {
$parms = explode('/', $_GET['q']);
$fname = check_plain($parms[3]);
$output = str_replace('FnAmE', $fname, $output);
}
}
/**
* Implements hook_pre_render().
*/
function kaltura_views_pre_render($view) {
// TODO: Figure out why does he use so strange approach to check the view name.
if (strpos($view->name, 'kaltura_existing') === 0) {
$parms = explode('/', $_GET['q']);
$widget = check_plain($parms[4]);
$mtype = kaltura_widget_to_media_type($widget);
$args[] = $mtype ? $mtype : NULL;
if ($mtype != 0) {
unset($view->display_handler->options['filters']['kaltura_media_type']);
$view->args = $args;
}
else {
unset($view->display['default']->display_options['arguments']['kaltura_media_type']);
}
}
}
/**
* Helper function that converts the filed widget to kaltura media type.
*
* @param mixed $widget
* the filed widget
*/
function kaltura_widget_to_media_type($widget) {
$filters = array(
'field_kaltura_video' => KALTURA_MEDIA_TYPE_VIDEO,
'field_kaltura_audio' => KALTURA_MEDIA_TYPE_AUDIO,
'field_kaltura_image' => KALTURA_MEDIA_TYPE_IMAGE,
'field_kaltura_web_cam' => 0,
'field_kaltura_all_media' => 0,
);
return $filters[$widget];
}
/**
* Ctools callback function for metadata editor modal.
*
* @param mixed $js
* is js enabled
* @param mixed $entry_id
* the entry id of the entry metadata
*
* @return array|mixed
*/
function kaltura_metadata_editor($js, $entry_id) {
if (!$js) {
return drupal_get_form('kaltura_metadata_editor_form');
}
ctools_include('modal');
ctools_include('ajax');
drupal_add_css(drupal_get_path('module', 'kaltura') . '/style/kaltura_modal.css');
$form_state = array(
'title' => t('Kaltura metadata edit'),
'ajax' => TRUE,
'eid' => $entry_id,
);
$output = ctools_modal_form_wrapper('kaltura_metadata_editor_form', $form_state);
if ($form_state['executed'] && $js) {
$commands = array();
$commands[] = ctools_modal_command_dismiss();
print ajax_render($commands);
exit;
}
if (isset($form_state['clicked_button']) && $form_state['clicked_button']['#value'] == 'cancel' && $js) {
$commands = array();
$commands[] = ctools_modal_command_dismiss();
print ajax_render($commands);
exit;
}
print ajax_render($output);
exit;
}
/**
* Implements hook_form().
*/
function kaltura_metadata_editor_form($form, $form_state) {
// Get stuff from db.
$qry = db_select('node_kaltura', 'k')
->fields('k', array(
'kaltura_tags',
'kaltura_title',
'kaltura_description',
))
->condition('kaltura_entryid', $form_state['eid'], '=')
->execute()
->fetchAssoc();
$form['name'] = array(
'#type' => 'textfield',
'#title' => t('Title'),
'#default_value' => isset($qry['kaltura_title']) ? $qry['kaltura_title'] : '',
);
$form['desc'] = array(
'#type' => 'textarea',
'#title' => t('Description'),
'#default_value' => isset($qry['kaltura_description']) ? $qry['kaltura_description'] : '',
'#cols' => 20,
);
$form['tags'] = array(
'#type' => 'textfield',
'#title' => t('Tags'),
'#size' => 25,
'#default_value' => isset($qry['kaltura_tags']) ? $qry['kaltura_tags'] : '',
);
$form['actions'] = array(
'#type' => 'container',
'#attributes' => array(
'class' => array(
'buttons',
),
),
);
$form['actions']['submit'] = array(
'#type' => 'submit',
'#value' => t('submit'),
);
$form['actions']['cancel'] = array(
'#type' => 'button',
'#value' => t('cancel'),
);
return $form;
}
/**
* Submit function for the metadata editing form.
*
* This function updates the kaltura metadata at the kaltura server and in the drupal db.
*
* @see kaltura_metadata_editor_form
*
* @param mixed $form
* @param mixed $form_state
*/
function kaltura_metadata_editor_form_submit($form, $form_state) {
try {
$k_helpers = new KalturaHelpers();
$kaltura_client = $k_helpers
->getKalturaClient(TRUE);
$k_helpers
->getSessionUser();
libraries_load('KalturaClient');
$kme = new KalturaBaseEntry();
$kme->name = $form_state['values']['name'];
$kme->description = $form_state['values']['desc'];
$kme->tags = $form_state['values']['tags'];
// TODO: add error handling. do not update local db if the remote is not ok.
$res = $kaltura_client->baseEntry
->update($form_state['eid'], $kme);
$query = db_update('node_kaltura')
->fields(array(
'kaltura_tags' => $form_state['values']['tags'],
'kaltura_title' => $form_state['values']['name'],
'kaltura_description' => $form_state['values']['desc'],
))
->condition('kaltura_entryid', $form_state['eid'], '=')
->execute();
drupal_set_message(t('Metadata updated successfully'));
} catch (Exception $e) {
watchdog_exception('kaltura', $e);
}
}
/**
* Callback function for the kaltura/entries URL.
*
* @return string
* Rendered view or FALSE otherwise.
*/
function kaltura_list_entries() {
drupal_add_css(drupal_get_path('module', 'kaltura') . '/style/kaltura_entries.css');
return views_embed_view('kaltura_list_entries', 'default');
}
/**
* Helper function to add the result from a notification or API call to the entry_data field.
*
* TODO: check this on.
*/
function kaltura_add_result_to_entry_data($eid, $result, $replace = TRUE) {
if (!$replace) {
// TODO: rewrite queries using db_select where possible.
$get_current_data = 'SELECT kaltura_entry_data FROM {node_kaltura} WHERE kaltura_entryId = \'%s\'';
$row = db_query($get_current_data, $eid);
$data = db_fetch_object($row);
$real_data = unserialize($data->kaltura_entry_data);
}
$real_data[] = $result;
$set_new_data = 'UPDATE {node_kaltura} SET kaltura_entry_data = \'%s\' WHERE kaltura_entryId = \'%s\'';
$row = db_query($set_new_data, serialize($real_data), $eid);
}
/**
* Implements hook_cron().
*
* TODO: I saw multiple warnings occurring in the cron function right after module was installed.
* TODO: This hook should be checked thoroughly.
*/
function kaltura_cron() {
// Get all entries from node_kaltura table,
// use the getEntries service to retrieve the data of entries.
$lastcron = variable_get('kaltura_last_update', 0);
$now = time();
$diff = $now - $lastcron;
$diffHours = round($diff / 60 / 60);
// if ($diffHours >= variable_get('kaltura_update_frequency', 0) + 1) {
try {
$all_entries = db_select('node_kaltura', 'k')
->fields('k', array(
'kaltura_entryid',
))
->execute()
->fetchCol();
if (is_array($all_entries) && count($all_entries)) {
$result = kaltura_get_entries($all_entries, TRUE);
}
else {
$result = FALSE;
}
// If we got a good result, we update the entry data in the DB.
if ($result[0] !== FALSE) {
foreach ($result[0]->objects as $result_object) {
$ent['kaltura_entryid'] = $result_object->id;
$ent['kaltura_tags'] = $result_object->tags;
$ent['kaltura_admin_tags'] = $result_object->adminTags;
$ent['kstatus'] = $result_object->status;
$ent['kaltura_media_type'] = $result_object->mediaType;
$ent['kaltura_duration'] = $result_object->duration;
$ent['kaltura_thumbnail_url'] = $result_object->thumbnailUrl;
$ent['kaltura_partner_data'] = $result_object->partnerData;
$ent['kaltura_source'] = $result_object->sourceType;
$ent['kaltura_width'] = $result_object->width;
$ent['kaltura_height'] = $result_object->height;
$ent['kaltura_download_url'] = $result_object->downloadUrl;
$ent['kaltura_views'] = $result_object->views;
$ent['kaltura_plays'] = $result_object->plays;
$ent['kaltura_votes'] = $result_object->votes;
$ent['kaltura_rank'] = $result_object->rank;
$ent['kaltura_total_rank'] = $result_object->totalRank;
$ent['kaltura_title'] = $result_object->name;
$ent['kaltura_description'] = $result_object->description;
drupal_write_record('node_kaltura', $ent, 'kaltura_entryid');
}
}
// If there is a successful run write timestamp.
variable_set('kaltura_last_update', $now);
} catch (Exception $ex) {
// TODO: Error handling?
}
// }
}
/**
* Helper function to call the getEntries service CMAC.
*
* Need to amalgamate mix and media entries.
*
* @param array $entries
* @param bool $is_admin
*
* @return array
* returns array made up of Mix and media entries
*
* TODO: move to kaltura helpers.
*/
function kaltura_get_entries($entries, $is_admin = FALSE) {
$chunks = array_chunk($entries, '100');
try {
foreach ($chunks as $chunk) {
$entries_list = implode(',', $chunk);
$k_helpers = new KalturaHelpers();
$kaltura_client = $k_helpers
->getKalturaClient($is_admin);
$session_user = $k_helpers
->getSessionUser();
libraries_load('KalturaClient');
$kmf = new KalturaBaseEntryFilter();
$kmp = new KalturaFilterPager('100');
$kmf->idIn = $entries_list;
$results[] = $kaltura_client->baseEntry
->listAction($kmf, $kmp);
}
$result = array_values($results);
if ($result) {
return $result;
}
} catch (Exception $e) {
watchdog_exception('kaltura', $e);
}
return FALSE;
}
/**
* Helper function to get the description field from kaltura after notification.
*
* @param $type
* @param $entry_id
*/
function get_entry_description($type, $entry_id) {
$k_helpers = new KalturaHelpers();
try {
$kaltura_client = $k_helpers
->getKalturaClient(true);
if ($type == 6) {
$result = $kaltura_client->mixing
->get($entry_id);
return $result->description;
}
else {
$result = $kaltura_client->baseEntry
->get($entry_id);
return $result->description;
}
} catch (Exception $e) {
watchdog_exception('kaltura', $e);
}
}
/**
* Implements hook_help().
*
* TODO: all help stuff throughout the module requires a complete overhaul, for now it is completely useless.
*/
function kaltura_help($path, $arg) {
switch ($path) {
case 'admin/help#kaltura':
return kaltura_get_help_html('general');
}
}
/**
* Helper function to load HTML content for Drupal's help pages.
*
* TODO: completely useless function, requires a complete overhaul.
*/
function kaltura_get_help_html($page) {
switch ($page) {
case 'general':
$filename = 'kaltura_general_help';
break;
case 'crossdomain':
$filename = 'kaltura_cd_help';
break;
}
// $help_html = file_get_contents(drupal_get_path('module', 'kaltura') . '/kaltura_help/' . $filename . '.html');
$help_html = '';
return $help_html;
}
/**
* Helper function that gets a widgetId, calls Kaltura's getWidget service and
* returns the embed code of the widget.
*
* @param int $widget_id
*/
function katura_fetch_widget_html($widget_id) {
try {
$k_helpers = new KalturaHelpers();
$session_user = $k_helpers
->getSessionUser();
$kaltura_client = $k_helpers
->getKalturaClient();
$result = $kaltura_client
->getWidget($session_user, $widget_id, 1);
$embbed = $result['result']['widget']['widgetHtml'];
return $embbed;
} catch (Exception $e) {
watchdog_exception('kaltura', $e);
}
}
/**
* Function to choose what URL the user will be redirected to after AddEntry in the CW.
*
* This function exposes a hook_cw_destination().
*/
function kaltura_cw_destination() {
$url = kaltura_invoke('cw_destination');
return $url ? $url[0] : url('kaltura/entries');
}
/**
* Helper function to convert array of variables to the correct string.
*
* @param array $vars
*
* @return string
*/
function kaltura_format_cw_vars($vars = array()) {
$str = urlencode(serialize($vars));
return $str;
}
/**
* Helper function to get a node id for a given entryId/kshowId.
*
* TODO: Seems like this function is not used anywhere.
*/
function kaltura_get_node_for_mix($entry_id) {
$get_q = 'SELECT nid FROM {node_kaltura} WHERE kaltura_entryId = :entryid';
$result = db_query($get_q, array(
'entryid' => $entry_id,
));
$obj = db_fetch_object($result);
return $obj->nid;
}
/**
* TODO: Seems like this function is not used anywhere.
*/
function katlura_get_metadata_for_mix($entry_id) {
$get_q = 'SELECT vid, nid, kaltura_thumbnail_url FROM {node_kaltura} WHERE kaltura_entryId = :entryid';
$result = db_query($get_q, array(
'entryid' => $entry_id,
));
$obj = db_fetch_object($result);
return $obj;
}
Functions
Name![]() |
Description |
---|---|
get_entry_description | Helper function to get the description field from kaltura after notification. |
kaltura_add_result_to_entry_data | Helper function to add the result from a notification or API call to the entry_data field. |
kaltura_cron | Implements hook_cron(). |
kaltura_cw_destination | Function to choose what URL the user will be redirected to after AddEntry in the CW. |
kaltura_existing | Ctools callback function for adding existing media that is all ready in the drupal db. |
kaltura_format_cw_vars | Helper function to convert array of variables to the correct string. |
kaltura_get_entries | Helper function to call the getEntries service CMAC. |
kaltura_get_help_html | Helper function to load HTML content for Drupal's help pages. |
kaltura_get_node_for_mix | Helper function to get a node id for a given entryId/kshowId. |
kaltura_help | Implements hook_help(). |
kaltura_invoke | Implements module_invoke(). |
kaltura_libraries_info | Implements hook_libraries_info(). |
kaltura_list_entries | Callback function for the kaltura/entries URL. |
kaltura_menu | Implements hook_menu(). |
kaltura_metadata_editor | Ctools callback function for metadata editor modal. |
kaltura_metadata_editor_form | Implements hook_form(). |
kaltura_metadata_editor_form_submit | Submit function for the metadata editing form. |
kaltura_node_update_index | Implements hook_node_update_index(). |
kaltura_permission | Implements hook_permission(). |
kaltura_theme | Implements hook_theme(). |
kaltura_uploader | Kaltura uploader. |
kaltura_views_post_render | Implements hook_views_post_render(). |
kaltura_views_pre_render | Implements hook_pre_render(). |
kaltura_widget_to_media_type | Helper function that converts the filed widget to kaltura media type. |
katlura_get_metadata_for_mix | TODO: Seems like this function is not used anywhere. |
katura_fetch_widget_html | Helper function that gets a widgetId, calls Kaltura's getWidget service and returns the embed code of the widget. |
_kaltura_thumbnail_base_url | Returns a URL prefix for thumbnails. |