diff --git node_reference/node_reference.module node_reference/node_reference.module index 8c78bc0..12723fe 100644 --- node_reference/node_reference.module +++ node_reference/node_reference.module @@ -827,3 +827,42 @@ function node_reference_content_migrate_instance_alter(&$instance_value) { break; } } + +/** + * Implements hook_views_api(). + */ +function node_reference_views_api() { + return array( + 'api' => '3.0', + ); +} + +/** + * Implements hook_field_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) { + // No module_load_include(): this hook is invoked from + // views/modules/field.views.inc, which is where that function is defined. + $data = field_views_field_default_views_data($field); + + $storage = $field['storage']['details']['sql']; + + foreach ($storage as $age => $table_data) { + $table = key($table_data); + $columns = current($table_data); + $id_column = $columns['nid']; + if (isset($data[$table])) { + $data[$table][$id_column]['relationship'] = array( + 'base' => 'node', + 'field' => 'nid', + 'base field' => 'nid', + 'label' => $field['field_name'], + ); + } + } + + return $data; +} diff --git user_reference/user_reference.module user_reference/user_reference.module index e5749e5..58d9639 100644 --- user_reference/user_reference.module +++ user_reference/user_reference.module @@ -662,4 +662,43 @@ function user_reference_content_migrate_instance_alter(&$instance_value) { } break; } -} \ No newline at end of file +} + +/** + * Implements hook_views_api(). + */ +function user_reference_views_api() { + return array( + 'api' => '3.0', + ); +} + +/** + * Implements hook_field_views_data(). + * + * In addition to the default field information we add the relationship for + * views to connect back to the users table. + */ +function user_reference_field_views_data($field) { + // No module_load_include(): this hook is invoked from + // views/modules/field.views.inc, which is where that function is defined. + $data = field_views_field_default_views_data($field); + + $storage = $field['storage']['details']['sql']; + + foreach ($storage as $age => $table_data) { + $table = key($table_data); + $columns = current($table_data); + $id_column = $columns['uid']; + if (isset($data[$table])) { + $data[$table][$id_column]['relationship'] = array( + 'base' => 'users', + 'field' => 'uid', + 'base field' => 'uid', + 'label' => $field['field_name'], + ); + } + } + + return $data; +}