Pārlūkot izejas kodu

Tripal: Added Relationship to Node for Library

laceysanderson 13 gadi atpakaļ
vecāks
revīzija
8c6fe885aa

+ 26 - 0
tripal_library/tripal_library.views.inc

@@ -68,6 +68,32 @@ function tripal_library_views_handlers() {
  );
 }
 
+/**
+ * Implementation of hook_views_data_alter().
+ */
+function tripal_library_views_data_alter(&$data) {
+
+  if( !(is_array($db_url) and array_key_exists('chado',$db_url)) ){
+
+    // Add featuer relationship to node
+    $data['node']['library_chado_nid'] = array(
+      'group' => 'Library',
+      'title' => 'Library Node',
+      'help' => 'Links Chado Library Fields/Data to the Nodes in the current View.',
+      'real field' => 'nid',
+      'relationship' => array(
+        'handler' => 'views_handler_relationship',
+        'title' => t('Node => Chado'),
+        'label' => t('Node => Chado'),
+        'real field' => 'nid',
+        'base' => 'chado_library',
+        'base field' => 'nid'
+      ),
+    );
+  }
+  
+}
+
 /**
  *
  *

+ 32 - 0
tripal_library/views/chado_library.views.inc

@@ -47,5 +47,37 @@ function retrieve_chado_library_views_data () {
   	'field' => 'nid',
   );  
 
+  // Add relationship between chado_library and library
+  $data['chado_library']['library_nid'] = array(
+    'group' => 'Library',
+    'title' => 'Library Node',
+    'help' => 'Links Chado Library Fields/Data to the Nodes in the current View.',
+    'real field' => 'library_id',
+    'relationship' => array(
+      'handler' => 'views_handler_relationship',
+      'title' => t('Chado => Library'),
+      'label' => t('Chado => Library'),
+      'real field' => 'library_id',
+      'base' => 'library',
+      'base field' => 'library_id'
+    ),
+  );
+
+  // Add node relationship to library
+  $data['chado_library']['library_chado_nid'] = array(
+    'group' => 'Library',
+    'title' => 'Library Node',
+    'help' => 'Links Chado Library Fields/Data to the Nodes in the current View.',
+    'real field' => 'nid',
+    'relationship' => array(
+      'handler' => 'views_handler_relationship',
+      'title' => t('Chado => Node'),
+      'label' => t('Chado => Node'),
+      'real field' => 'nid',
+      'base' => 'node',
+      'base field' => 'nid'
+    ),
+  );
+  
 	return $data;
 }

+ 18 - 1
tripal_library/views/library.views.inc

@@ -99,7 +99,24 @@ function retrieve_library_views_data() {
 	    	'handler' => 'views_handler_field_computed_library_nid',
 	  	),
 		);
-	}
+  } else {
+    // Add relationship between chado_library and library
+    $data['library']['library_nid'] = array(
+      'group' => 'Library',
+      'title' => 'Library Node',
+      'help' => 'Links Chado Library Fields/Data to the Nodes in the current View.',
+      'real field' => 'library_id',
+      'relationship' => array(
+        'handler' => 'views_handler_relationship',
+        'title' => t('Library => Chado'),
+        'label' => t('Library => Chado'),
+        'real field' => 'library_id',
+        'base' => 'chado_library',
+        'base field' => 'library_id'
+      ),
+    );
+
+  }
 	
 	// Field: organism_id (forgeign key)
   //  join between organism table and this one in tripal_organism/views/organism.views.inc