From 9ddfc4697d91b75823bad166666e27f433517b80 Mon Sep 17 00:00:00 2001 From: David Rothstein <drothstein@gmail.com> Date: Sun, 29 Mar 2015 17:47:44 -0400 Subject: [PATCH] Issue #1823306 by mkalkbrenner, p-neyens, webflo, swentel, zuuperman: Language code is missing from $context when hook_field_attach_view_alter() is invoked from field_view_field() --- CHANGELOG.txt | 2 ++ modules/field/field.module | 1 + modules/field/tests/field.test | 3 ++- modules/field/tests/field_test.module | 4 ++++ 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 8b4d06ba21ea..2a12d806ae66 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,6 +1,8 @@ Drupal 7.36, xxxx-xx-xx (development version) ----------------------- +- Fixed missing language code in hook_field_attach_view_alter() when it is + invoked from field_view_field(). - Stopped sending ETag and Last-Modified headers for uncached page requests, since they break caching for certain Varnish and Nginx configurations. - Changed the Simpletest module to allow PSR-4 test classes to be used in diff --git a/modules/field/field.module b/modules/field/field.module index a593e5111e91..e4039786eef7 100644 --- a/modules/field/field.module +++ b/modules/field/field.module @@ -894,6 +894,7 @@ function field_view_field($entity_type, $entity, $field_name, $display = array() 'entity' => $entity, 'view_mode' => '_custom', 'display' => $display, + 'language' => $langcode, ); drupal_alter('field_attach_view', $result, $context); diff --git a/modules/field/tests/field.test b/modules/field/tests/field.test index b279d6a8f497..adf2413ba7b4 100644 --- a/modules/field/tests/field.test +++ b/modules/field/tests/field.test @@ -2206,11 +2206,12 @@ class FieldDisplayAPITestCase extends FieldTestCase { 'alter' => TRUE, ), ); - $output = field_view_field('test_entity', $this->entity, $this->field_name, $display); + $output = field_view_field('test_entity', $this->entity, $this->field_name, $display, LANGUAGE_NONE); $this->drupalSetContent(drupal_render($output)); $setting = $display['settings']['test_formatter_setting_multiple']; $this->assertNoText($this->label, 'Label was not displayed.'); $this->assertText('field_test_field_attach_view_alter', 'Alter fired, display passed.'); + $this->assertText('field language is ' . LANGUAGE_NONE, 'Language is placed onto the context.'); $array = array(); foreach ($this->values as $delta => $value) { $array[] = $delta . ':' . $value['value']; diff --git a/modules/field/tests/field_test.module b/modules/field/tests/field_test.module index 9daa2c305c9b..7e9bba0d8bf2 100644 --- a/modules/field/tests/field_test.module +++ b/modules/field/tests/field_test.module @@ -220,6 +220,10 @@ function field_test_field_attach_view_alter(&$output, $context) { if (!empty($context['display']['settings']['alter'])) { $output['test_field'][] = array('#markup' => 'field_test_field_attach_view_alter'); } + + if (isset($output['test_field'])) { + $output['test_field'][] = array('#markup' => 'field language is ' . $context['language']); + } } /** -- GitLab