function videoftp_widget_value in Video 6.4
Same name and namespace in other branches
- 6.5 types/videoftp/videoftp_widget.inc \videoftp_widget_value()
The #value_callback for the videoftp_widget type element.
Copied from filefield_widget_value with one change to reset our data array
1 string reference to 'videoftp_widget_value'
- videoftp_elements in types/
videoftp/ videoftp.module - Implementation of hook_elements().
File
- types/
videoftp/ videoftp_widget.inc, line 82 - videoftp widget hooks and callbacks.
Code
function videoftp_widget_value($element, $edit = FALSE) {
if (!$edit) {
// Creating so we load up our empty values.
$file = field_file_load($element['#default_value']['fid']);
$item = $element['#default_value'];
}
else {
// Reset our item array for our data.
$item = array_merge($element['#default_value'], $edit);
if (isset($element['#default_value']['data']) && isset($edit['data'])) {
$item['data'] = array_merge($element['#default_value']['data'], $edit['data']);
}
$field = content_fields($element['#field_name'], $element['#type_name']);
// Uploads take priority over value of fid text field.
if ($fid = videoftp_save_upload($element)) {
$item['fid'] = $fid;
$item['data'] = $element['#default_value']['data'];
}
elseif (isset($element['#videoftp_value_callback'])) {
foreach ($element['#videoftp_value_callback'] as $callback) {
$callback($element, $item);
}
}
// Load file if the FID has changed so that it can be saved by CCK.
$file = isset($item['fid']) ? field_file_load($item['fid']) : NULL;
// If the file entry doesn't exist, don't save anything.
if (empty($file)) {
$item = array();
$file = array();
}
// Checkboxes loose their value when empty.
// If the list field is present make sure its unchecked value is saved.
if (!empty($field['list_field']) && empty($edit['list'])) {
$item['list'] = 0;
}
}
// Merge file and item data so it is available to all widgets.
if (isset($item['data']) && isset($file['data'])) {
$file['data'] = array_merge($item['data'], $file['data']);
}
$item = array_merge($item, $file);
return $item;
}