Index: modules/node_reference/node_reference.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/cck/modules/node_reference/node_reference.module,v retrieving revision 1.36 diff -u -p -r1.36 node_reference.module --- modules/node_reference/node_reference.module 21 Jun 2010 21:38:23 -0000 1.36 +++ modules/node_reference/node_reference.module 4 Nov 2010 20:48:56 -0000 @@ -786,4 +786,41 @@ function node_reference_content_migrate_ } break; } -} \ No newline at end of file +} + +/** + * Implements hook_views_api(). + */ +function node_reference_views_api() { + return array( + 'api' => '3.0', + ); +} + +/** + * Implements hook_views_data(). + * + * In addition to the default field information we add the relationship for + * views to connect back to the node table. + */ +function node_reference_field_views_data($field) { + $data = field_views_field_default_views_data($field); + // Build The entities and bundles this appears on. + $appears_on = array(); + foreach ($field['bundles'] as $entity => $bundles) { + $appears_on[] = $entity . ' (' . implode(', ', $bundles) . ')'; + } + $appears_on = implode(', ', $appears_on); + foreach ($data as $table_name => $table_data) { + if (isset($field['storage']['details']['sql'][FIELD_LOAD_CURRENT][$table_name]['nid'])) { + $data[$table_name][$field['storage']['details']['sql'][FIELD_LOAD_CURRENT][$table_name]['nid']]['relationship'] = array( + 'base' => 'node', + 'field' => 'nid', + 'title' => $field['field_name'], + 'help' => t('Node Reference appears on: !details', array('!details' => $appears_on)), + ); + } + } + + return $data; +}