diff options
-rw-r--r-- | modules/field/field.api.php | 2 | ||||
-rw-r--r-- | modules/field/field.default.inc | 4 | ||||
-rw-r--r-- | modules/field/field.module | 5 |
3 files changed, 8 insertions, 3 deletions
diff --git a/modules/field/field.api.php b/modules/field/field.api.php index 474499d7c..e899d4345 100644 --- a/modules/field/field.api.php +++ b/modules/field/field.api.php @@ -2165,6 +2165,7 @@ function hook_field_info_max_weight($entity_type, $bundle, $context) { * - entity_type: The entity type; e.g. 'node' or 'user'. * - field: The field being rendered. * - instance: The instance being rendered. + * - entity: The entity being rendered. * - view_mode: The view mode, e.g. 'full', 'teaser'... * * @see hook_field_display_ENTITY_TYPE_alter() @@ -2199,6 +2200,7 @@ function hook_field_display_alter(&$display, $context) { * - entity_type: The entity type; e.g. 'node' or 'user'. * - field: The field being rendered. * - instance: The instance being rendered. + * - entity: The entity being rendered. * - view_mode: The view mode, e.g. 'full', 'teaser'... * * @see hook_field_display_alter() diff --git a/modules/field/field.default.inc b/modules/field/field.default.inc index 79e0b937b..f078d24ca 100644 --- a/modules/field/field.default.inc +++ b/modules/field/field.default.inc @@ -142,7 +142,7 @@ function field_default_prepare_view($entity_type, $entities, $field, $instances, foreach ($instances as $id => $instance) { if (is_string($display)) { $view_mode = $display; - $display = field_get_display($instance, $view_mode); + $display = field_get_display($instance, $view_mode, $entities[$id]); } if ($display['type'] !== 'hidden') { $module = $display['module']; @@ -194,7 +194,7 @@ function field_default_view($entity_type, $entity, $field, $instance, $langcode, // Prepare incoming display specifications. if (is_string($display)) { $view_mode = $display; - $display = field_get_display($instance, $view_mode); + $display = field_get_display($instance, $view_mode, $entity); } else { $view_mode = '_custom_display'; diff --git a/modules/field/field.module b/modules/field/field.module index d3545d911..58f0365c8 100644 --- a/modules/field/field.module +++ b/modules/field/field.module @@ -448,11 +448,13 @@ function field_view_mode_settings($entity_type, $bundle) { * The field instance being displayed. * @param $view_mode * The view mode. + * @param $entity + * The entity being displayed. * * @return * The display settings to be used when displaying the field values. */ -function field_get_display($instance, $view_mode) { +function field_get_display($instance, $view_mode, $entity) { // Check whether the view mode uses custom display settings or the 'default' // mode. $view_mode_settings = field_view_mode_settings($instance['entity_type'], $instance['bundle']); @@ -464,6 +466,7 @@ function field_get_display($instance, $view_mode) { 'entity_type' => $instance['entity_type'], 'field' => field_info_field($instance['field_name']), 'instance' => $instance, + 'entity' => $entity, 'view_mode' => $view_mode, ); drupal_alter(array('field_display', 'field_display_' . $instance['entity_type']), $display, $context); |