? 375337.cck.userref-backref-views.patch
Index: includes/views/content.views.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/cck/includes/views/Attic/content.views.inc,v
retrieving revision 1.1.2.28
diff -u -p -r1.1.2.28 content.views.inc
--- includes/views/content.views.inc	11 Aug 2009 20:05:18 -0000	1.1.2.28
+++ includes/views/content.views.inc	26 May 2010 21:24:16 -0000
@@ -146,7 +146,7 @@ function content_views_data() {
       $result = content_views_field_views_data($field);
     }
     if (is_array($result)) {
-      $data = array_merge($data, $result);
+      $data = array_merge_recursive($data, $result);
     }
   }
   return $data;
Index: modules/userreference/userreference.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/cck/modules/userreference/Attic/userreference.module,v
retrieving revision 1.106.2.47
diff -u -p -r1.106.2.47 userreference.module
--- modules/userreference/userreference.module	23 Sep 2009 00:07:32 -0000	1.106.2.47
+++ modules/userreference/userreference.module	26 May 2010 21:24:20 -0000
@@ -171,6 +171,35 @@ function userreference_field_settings($o
         'label' => t($field['widget']['label']),
         'content_field_name' => $field['field_name'],
       );
+      // Join: join node table with users table through field's table.
+      $data['node_'. $table_alias]['table']['join']['users'] = array(
+        'table' => 'node',
+        'field' => 'vid',
+        'left_table' => $table_alias,
+        'left_field' => 'vid',
+      );
+      // Join: join field's table with users table.
+      $data[$table_alias]['table']['join']['users'] = array(
+        'table' => $db_info['table'],
+        'field' => $db_info['columns']['uid']['column'],
+        'left_field' => 'uid',
+      );
+      // Relationship: Add a relationship for related node.
+      $data['users'][$field['field_name'] .'_vid'] = array(
+        'group' => t('Node'),
+        'title' => $data[$table_alias][$field['field_name'] .'_uid']['title'],
+        'title_short' => $data[$table_alias][$field['field_name'] .'_uid']['title_short'],
+        'help' => t('Create a relationship to a node with this userreference field.'),
+        'relationship' => array(
+          'base' => 'node',
+          'base field' => 'vid',
+          'relationship table' => $table_alias,
+          'relationship field' => 'vid',
+          'handler' => 'content_handler_relationship',
+          'label' => t($field['widget']['label']),
+          'content_field_name' => $field['field_name'],
+        ),
+      );
       return $data;
 
   }
