diff --git a/core/modules/file/file.field.inc b/core/modules/file/file.field.inc index db8e07e..dcb2a8c 100644 --- a/core/modules/file/file.field.inc +++ b/core/modules/file/file.field.inc @@ -926,7 +926,7 @@ function file_field_formatter_view($entity_type, $entity, $field, $instance, $la foreach ($items as $delta => $item) { $element[$delta] = array( '#theme' => 'file_link', - '#file' => file_load($item['fid']), + '#file' => (object) $item, ); } break; @@ -965,7 +965,7 @@ function theme_file_formatter_table($variables) { $rows = array(); foreach ($variables['items'] as $delta => $item) { $rows[] = array( - theme('file_link', array('file' => file_load($item['fid']))), + theme('file_link', array('file' => (object) $item)), format_size($item['filesize']), ); } diff --git a/core/modules/file/file.module b/core/modules/file/file.module index 78112c6..0f5ff7a 100644 --- a/core/modules/file/file.module +++ b/core/modules/file/file.module @@ -736,7 +736,8 @@ function theme_file_link($variables) { $icon_directory = $variables['icon_directory']; $url = file_create_url($file->uri); - $icon = theme('file_icon', array('file' => $file, 'icon_directory' => $icon_directory)); + // theme_file_icon() requires a file entity, make sure it gets one. + $icon = theme('file_icon', array('file' => ($file instanceof File) ? $file : file_load($file->fid), 'icon_directory' => $icon_directory)); // Set options as per anchor format described at // http://microformats.org/wiki/file-format-examples diff --git a/core/modules/file/tests/file.test b/core/modules/file/tests/file.test index ae955f0..b7ed85a 100644 --- a/core/modules/file/tests/file.test +++ b/core/modules/file/tests/file.test @@ -809,7 +809,7 @@ class FileFieldDisplayTestCase extends FileFieldTestCase { // Check that the default formatter is displaying with the file name. $node = node_load($nid, NULL, TRUE); - $node_file = file_load($node->{$field_name}[LANGUAGE_NOT_SPECIFIED][0]['fid']); + $node_file = (object) $node->{$field_name}[LANGUAGE_NOT_SPECIFIED][0]; $default_output = theme('file_link', array('file' => $node_file)); $this->assertRaw($default_output, t('Default formatter displaying correctly on full node view.'));