diff options
Diffstat (limited to 'modules/file/file.field.inc')
-rw-r--r-- | modules/file/file.field.inc | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/modules/file/file.field.inc b/modules/file/file.field.inc index 286e2e0b7..faa661ea0 100644 --- a/modules/file/file.field.inc +++ b/modules/file/file.field.inc @@ -674,8 +674,11 @@ function file_field_widget_process_multiple($element, &$form_state, $form) { foreach ($element_children as $delta => $key) { if ($key != $element['#file_upload_delta']) { + $description = _file_field_get_description_from_element($element[$key]); $element[$key]['_weight'] = array( '#type' => 'weight', + '#title' => $description ? t('Weight for @title', array('@title' => $description)) : t('Weight for new file'), + '#title_display' => 'invisible', '#delta' => $count, '#default_value' => $delta, ); @@ -699,6 +702,27 @@ function file_field_widget_process_multiple($element, &$form_state, $form) { } /** + * Helper function for file_field_widget_process_multiple(). + * + * @param $element + * The element being processed. + * @return + * A description of the file suitable for use in the administrative interface. + */ +function _file_field_get_description_from_element($element) { + // Use the actual file description, if it's available. + if (!empty($element['#default_value']['description'])) { + return $element['#default_value']['description']; + } + // Otherwise, fall back to the filename. + if (!empty($element['#default_value']['filename'])) { + return $element['#default_value']['filename']; + } + // This is probably a newly uploaded file; no description is available. + return FALSE; +} + +/** * Returns HTML for an individual file upload widget. * * @param $variables |