diff options
author | Dries Buytaert <dries@buytaert.net> | 2010-11-21 19:09:18 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2010-11-21 19:09:18 +0000 |
commit | 2e438914d2133d185f12547b815ab8fde3f80bc2 (patch) | |
tree | e07548a81a5f49f07efb90c97a6950d04b7d65c8 | |
parent | df5714f5a2a3eb025ab47211d6da5582c1bc5789 (diff) | |
download | brdo-2e438914d2133d185f12547b815ab8fde3f80bc2.tar.gz brdo-2e438914d2133d185f12547b815ab8fde3f80bc2.tar.bz2 |
- Patch #830020 by chx, yched: field_get_display() does not get the entity.
-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); |