#819816 by aaronbauman, yched, Damien Tournoud, tsi: Fixed Reordering multivalue file and image field uploads is broken.

merge-requests/26/head
Angie Byron 2010-08-04 06:55:35 +00:00
parent 086f2ea091
commit a1ce6bac55
2 changed files with 8 additions and 16 deletions

View File

@ -65,12 +65,10 @@ function field_default_validate($entity_type, $entity, $field, $instance, $langc
}
function field_default_submit($entity_type, $entity, $field, $instance, $langcode, &$items, $form, &$form_state) {
// Reorder items to account for drag-n-drop reordering.
if (field_behaviors_widget('multiple values', $instance) == FIELD_BEHAVIOR_DEFAULT) {
$items = _field_sort_items($field, $items);
}
// Filter out empty values.
$items = _field_filter_items($field, $items);
// Reorder items to account for drag-n-drop reordering.
$items = _field_sort_items($field, $items);
}
/**

View File

@ -322,24 +322,18 @@ function _field_sort_items($field, $items) {
* (copied form element_sort(), which acts on #weight keys)
*/
function _field_sort_items_helper($a, $b) {
$a_weight = (is_array($a) && isset($a['_weight'])) ? $a['_weight'] : 0;
$b_weight = (is_array($b) && isset($b['_weight'])) ? $b['_weight'] : 0;
if ($a_weight == $b_weight) {
return 0;
}
return ($a_weight < $b_weight) ? -1 : 1;
$a_weight = (is_array($a) ? $a['_weight'] : 0);
$b_weight = (is_array($b) ? $b['_weight'] : 0);
return $a_weight - $b_weight;
}
/**
* Same as above, using ['_weight']['#value']
*/
function _field_sort_items_value_helper($a, $b) {
$a_weight = (is_array($a) && isset($a['_weight']['#value'])) ? $a['_weight']['#value'] : 0;
$b_weight = (is_array($b) && isset($b['_weight']['#value'])) ? $b['_weight']['#value'] : 0;
if ($a_weight == $b_weight) {
return 0;
}
return ($a_weight < $b_weight) ? -1 : 1;
$a_weight = (is_array($a) && isset($a['_weight']['#value']) ? $a['_weight']['#value'] : 0);
$b_weight = (is_array($b) && isset($b['_weight']['#value']) ? $b['_weight']['#value'] : 0);
return $a_weight - $b_weight;
}
/**