diff --git a/entityreference.module b/entityreference.module index 14d932a..320acf8 100644 --- a/entityreference.module +++ b/entityreference.module @@ -1082,6 +1082,7 @@ function entityreference_field_formatter_info() { 'field types' => array('entityreference'), 'settings' => array( 'link' => FALSE, + 'target' => '', ), ), 'entityreference_entity_id' => array( @@ -1116,6 +1117,12 @@ function entityreference_field_formatter_settings_form($field, $instance, $view_ '#type' => 'checkbox', '#default_value' => $settings['link'], ); + $element['target'] = array( + '#title' => t('Link Target'), + '#type' => 'textfield', + '#size' => 8, + '#default_value' => $settings['target'], + ); } if ($display['type'] == 'entityreference_entity_view') { @@ -1162,6 +1169,7 @@ function entityreference_field_formatter_settings_summary($field, $instance, $vi if ($display['type'] == 'entityreference_label') { $summary[] = $settings['link'] ? t('Link to the referenced entity') : t('No link'); + $summary[] = $settings['target'] ? t('Target:') . $settings['target'] : t('No target'); } if ($display['type'] == 'entityreference_entity_view') { @@ -1251,7 +1259,12 @@ function entityreference_field_formatter_view($entity_type, $entity, $field, $in // If the link is to be displayed and the entity has a uri, display a link. // Note the assignment ($url = ) here is intended to be an assignment. if ($display['settings']['link'] && ($uri = entity_uri($field['settings']['target_type'], $item['entity']))) { - $result[$delta] = array('#markup' => l($label, $uri['path'], $uri['options'])); + if ($display['settings']['target']) { + $uri['options']['attributes']['target'] = $display['settings']['target']; + } + $result[$delta] = array( + '#markup' => l($label, $uri['path'], $uri['options']), + ); } else { $result[$delta] = array('#markup' => check_plain($label));