function video_field_widget_value in Video 7.2
The #value_callback for the video field element.
This function loads additional information related to the video to be used in video_field_widget_process().
1 string reference to 'video_field_widget_value'
- video_field_widget_form in ./
video.field.inc - Implements hook_field_widget_form().
File
- ./
video.field.inc, line 676 - Implement a video field, based on the file module's file field.
Code
function video_field_widget_value($element, $input = FALSE, $form_state) {
// file_field_widget_value() also takes care of adding $input to $value.
$value = file_field_widget_value($element, $input, $form_state);
// Extra default values.
$value += array(
'bypass_autoconversion' => variable_get('video_bypass_conversion', FALSE),
'convert_video_on_save' => variable_get('video_convert_on_save', FALSE),
'use_default_video_thumb' => variable_get('video_use_default_thumb', FALSE),
'conversionstatus' => NULL,
'fid' => 0,
'thumbnail' => 0,
);
if ($value['fid'] > 0) {
$transcoder = new Transcoder();
if ($transcoder
->hasTranscoder()) {
$video = video_jobs::load($value['fid']);
if ($video) {
// The dimensions may have been set from input, so check first to not
// overwrite a change by the user.
if (empty($value['dimensions'])) {
$value['dimensions'] = $video->dimensions;
}
$value['conversionstatus'] = $video->video_status;
// When there is a job, unselect "Bypass auto conversion" because it
// would remove the converted files.
$value['bypass_autoconversion'] = 0;
}
else {
// No job (yet), find the video dimensions to use as default.
if (empty($value['dimensions'])) {
$video_ratio = _video_aspect_ratio($value);
if (!empty($video_ratio['width']) && !empty($video_ratio['height'])) {
$filedimensions = $video_ratio['width'] . 'x' . $video_ratio['height'];
$alldimensions = video_utility::getDimensions();
if (in_array($filedimensions, $alldimensions)) {
$value['dimensions'] = $filedimensions;
}
}
}
// If there is no job, it might be because the user selected
// "bypass autoconversion" previously. When the file is permanent,
// this probably was the case.
if (isset($value['status']) && $value['status'] == FILE_STATUS_PERMANENT) {
$value['bypass_autoconversion'] = 1;
}
}
}
}
// Find the values for thumbnail and use_default_video_thumb.
if (!empty($value['thumbnailfile']) && !empty($value['thumbnailfile']->fid)) {
$value['thumbnail'] = $value['thumbnailfile']->fid;
$field = field_widget_field($element, $form_state);
if (!empty($field['settings']['default_video_thumbnail']['fid'])) {
if ($field['settings']['default_video_thumbnail']['fid'] == $value['thumbnail']) {
$value['use_default_video_thumb'] = 1;
}
}
}
// Load the default dimensions when there is no file or input.
if (empty($value['dimensions'])) {
$alldimensions = video_utility::getDimensions();
$instance = field_widget_instance($element, $form_state);
if (in_array($instance['settings']['default_dimensions'], $alldimensions)) {
$value['dimensions'] = $instance['settings']['default_dimensions'];
}
else {
$value['dimensions'] = key($alldimensions);
}
}
return $value;
}