function field_kaltura_field in Kaltura 6.2
Same name and namespace in other branches
- 5 plugins/field_kaltura/field_kaltura.module \field_kaltura_field()
- 6 plugins/field_kaltura/field_kaltura.module \field_kaltura_field()
Implementation of hook_field().
File
- plugins/
field_kaltura/ field_kaltura.module, line 170 - kaltura integration module - functions to provide kaltura as CCK field
Code
function field_kaltura_field($op, &$node, $field, &$items, $teaser, $page) {
switch ($op) {
case 'view':
case 'insert':
field_kaltura_create_node($node, $items, $field['type']);
break;
case 'validate':
$allowed_values = content_allowed_values($field);
if (is_array($items)) {
foreach ($items as $delta => $item) {
$error_element = isset($item['_error_element']) ? $item['_error_element'] : '';
if (is_array($item) && isset($item['_error_element'])) {
unset($item['_error_element']);
}
if (!empty($item['value'])) {
// allowed values validation
if (count($allowed_values) && !array_key_exists($item['value'], $allowed_values)) {
form_set_error($error_element, t('%name: illegal value.', array(
'%name' => t($field['widget']['label']),
)));
}
// max length validation
if (!empty($field['max_length']) && drupal_strlen($item['value']) > $field['max_length']) {
form_set_error($error_element, t('%name: the value may not be longer than %max characters.', array(
'%name' => $field['widget']['label'],
'%max' => $field['max_length'],
)));
}
}
// validation that entry exists on Kaltura server
try {
$entries = explode(',', $item['value']);
foreach ($entries as $entry_id) {
if (!empty($entry_id)) {
$entry = kaltura_get_entry($entry_id);
}
}
} catch (Exception $ex) {
watchdog('field_kaltura', t('Kaltura Exception: %message, backtrace: <pre>!trace</pre>'), array(
'%message' => $ex
->getMessage(),
'!trace' => print_r($ex
->getTrace(), 1),
));
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(),
)));
}
}
}
}
return $items;
case 'sanitize':
foreach ($items as $delta => $item) {
$items[$delta]['#kaltura_field'] = $field;
}
break;
}
}