diff options
author | Angie Byron <webchick@24967.no-reply.drupal.org> | 2010-08-04 06:55:35 +0000 |
---|---|---|
committer | Angie Byron <webchick@24967.no-reply.drupal.org> | 2010-08-04 06:55:35 +0000 |
commit | a1ce6bac55287fa815921561d747b5fc2e88fde6 (patch) | |
tree | b50a639106c4bfc475d7d15b9eb63a6fef795ae5 | |
parent | 086f2ea0911ee5cef66e1a405091e5797bf1f165 (diff) | |
download | brdo-a1ce6bac55287fa815921561d747b5fc2e88fde6.tar.gz brdo-a1ce6bac55287fa815921561d747b5fc2e88fde6.tar.bz2 |
#819816 by aaronbauman, yched, Damien Tournoud, tsi: Fixed Reordering multivalue file and image field uploads is broken.
-rw-r--r-- | modules/field/field.default.inc | 6 | ||||
-rw-r--r-- | modules/field/field.module | 18 |
2 files changed, 8 insertions, 16 deletions
diff --git a/modules/field/field.default.inc b/modules/field/field.default.inc index 060ad990e..5af888967 100644 --- a/modules/field/field.default.inc +++ b/modules/field/field.default.inc @@ -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); } /** diff --git a/modules/field/field.module b/modules/field/field.module index 19d30540d..3f0b338f5 100644 --- a/modules/field/field.module +++ b/modules/field/field.module @@ -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; } /** |