From 7b51b277c6d2f35be627cd418daf150ac4a91dd0 Mon Sep 17 00:00:00 2001 From: flow Date: Mon, 11 Apr 2011 16:36:41 +0200 Subject: [PATCH] Issue #1046234 by webflo: node reference issue with content translation --- node_reference/node_reference.module | 12 +++++++----- 1 files changed, 7 insertions(+), 5 deletions(-) diff --git a/node_reference/node_reference.module b/node_reference/node_reference.module index 11db51b..ff05a3d 100644 --- a/node_reference/node_reference.module +++ b/node_reference/node_reference.module @@ -760,28 +760,30 @@ function node_reference_preprocess_node(&$vars) { function node_reference_field_prepare_translation($entity_type, $entity, $field, $instance, $langcode, &$items) { $addition = array(); $addition[$field['field_name']] = array(); + $source_language = $entity->translation_source->language; if (isset($entity->translation_source->$field['field_name']) && is_array($entity->translation_source->$field['field_name'])) { - foreach ($entity->translation_source->$field['field_name'] as $key => $reference) { + $references = $entity->translation_source->$field['field_name']; + foreach ($references[$source_language] as $key => $reference) { $reference_node = node_load($reference['nid']); // Test if the referenced node type is translatable and, if so, // load translations if the reference is not for the current language. // We can assume the translation module is present because it invokes 'prepare translation'. if (translation_supported_type($reference_node->type) && !empty($reference_node->language) - && $reference_node->language != $node->language + && $reference_node->language != $entity->language && $translations = translation_node_get_translations($reference_node->tnid)) { // If there is a translation for the current language, use it. $addition[$field['field_name']][] = array( - 'nid' => isset($translations[$node->language]) - ? $translations[$node->language]->nid + 'nid' => isset($translations[$entity->language]) + ? $translations[$entity->language]->nid : $reference['nid'], ); } } } - return $addition; + $items = $addition[$field['field_name']]; } /** -- 1.7.3.4