From 407a0d2f315df906498a5dc7322c35f2abb57ad3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Sjo=CC=88kvist?= <henrik.sjokvist@searchfactory.se>
Date: Wed, 16 Mar 2011 15:26:47 +0100
Subject: [PATCH] Issue #1085576 by henrrrik: Adds URL as plain text display formatters for user and node references.

---
 node_reference/node_reference.module |   14 +++++++++++++-
 user_reference/user_reference.module |   13 ++++++++++++-
 2 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/node_reference/node_reference.module b/node_reference/node_reference.module
index 141de42..b28e7d0 100644
--- a/node_reference/node_reference.module
+++ b/node_reference/node_reference.module
@@ -201,6 +201,11 @@ function node_reference_field_formatter_info() {
       'field types' => array('node_reference'),
       'settings'    => array('node_reference_view_mode' => 'full'),
     ),
+    'node_reference_url' => array(
+      'label'       => t('URL, as plain text'),
+      'description' => t('Display the URL of the referenced node plain text.'),
+      'field types' => array('node_reference'),
+    ),
   );
   return $ret;
 }
@@ -293,6 +298,7 @@ function node_reference_field_formatter_view($entity_type, $entity, $field, $ins
   switch ($display['type']) {
     case 'node_reference_default':
     case 'node_reference_plain':
+    case 'node_reference_url':
       foreach ($items as $delta => $item) {
         if ($item['access']) {
           $node = $item['node'];
@@ -305,11 +311,17 @@ function node_reference_field_formatter_view($entity_type, $entity, $field, $ins
               '#options' => $uri['options'],
             );
           }
-          else {
+          else if ($display['type'] == 'node_reference_plain') {
             $result[$delta] = array(
               '#markup' => check_plain($node->title),
             );
           }
+          else {
+            $uri = entity_uri('node', $node);
+            $result[$delta] = array(
+              '#markup' => check_plain($uri['path']),
+            );
+          }
           if (!$node->status) {
             $result[$delta]['#prefix'] = '<span class="node-unpublished">';
             $result[$delta]['#suffix'] = '</span>';
diff --git a/user_reference/user_reference.module b/user_reference/user_reference.module
index 084a50f..b6d6a12 100644
--- a/user_reference/user_reference.module
+++ b/user_reference/user_reference.module
@@ -151,6 +151,11 @@ function user_reference_field_formatter_info() {
       'description' => t('Display the name of the referenced user as plain text.'),
       'field types' => array('user_reference'),
     ),
+    'user_reference_url' => array(
+      'label' => t('URL, as plain text'),
+      'description' => t('Display the URL of the referenced user as plain text.'),
+      'field types' => array('user_reference'),
+    ),
   );
 }
 
@@ -172,6 +177,7 @@ function user_reference_field_formatter_view($entity_type, $entity, $field, $ins
   switch ($display['type']) {
     case 'user_reference_default':
     case 'user_reference_plain':
+    case 'user_reference_url':
       $titles = _user_reference_get_user_names($uids);
       foreach ($items as $delta => $item) {
         if ($display['type'] == 'user_reference_default') {
@@ -181,11 +187,16 @@ function user_reference_field_formatter_view($entity_type, $entity, $field, $ins
             '#href' => 'user/' . $item['uid'],
           );
         }
-        else {
+        else if ($display['type'] == 'user_reference_plain') {
           $result[$delta] = array(
             '#markup' => check_plain($titles[$item['uid']]),
           );
         }
+        else {
+          $result[$delta] = array(
+            '#markup' => check_plain('user/' . $item['uid']),
+          );
+        }
       }
       break;
   }
-- 
1.7.4.1

