瀏覽代碼

Tripal: Added Relationship to Node for Organism

laceysanderson 13 年之前
父節點
當前提交
0793b43688

+ 26 - 0
tripal_organism/tripal_organism.views.inc

@@ -63,6 +63,32 @@ function tripal_organism_views_handlers() {
  );
 }
 
+/**
+ * Implementation of hook_views_data_alter().
+ */
+function tripal_organism_views_data_alter(&$data) {
+
+  if( !(is_array($db_url) and array_key_exists('chado',$db_url)) ){
+
+    // Add featuer relationship to node
+    $data['node']['organism_chado_nid'] = array(
+      'group' => 'Organism',
+      'title' => 'Organism Node',
+      'help' => 'Links Chado Organism 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_organism',
+        'base field' => 'nid'
+      ),
+    );
+  }
+  
+}
+
 /**
  *
  * @ingroup tripal_organism_views

+ 32 - 0
tripal_organism/views/chado_organism.views.inc

@@ -47,5 +47,37 @@ function retrieve_chado_organism_views_data () {
   	'field' => 'nid',
   );  
 
+  // Add relationship between chado_organism and organism
+  $data['chado_organism']['organism_nid'] = array(
+    'group' => 'Organism',
+    'title' => 'Organism Node',
+    'help' => 'Links Chado Organism Fields/Data to the Nodes in the current View.',
+    'real field' => 'organism_id',
+    'relationship' => array(
+      'handler' => 'views_handler_relationship',
+      'title' => t('Chado => Organism'),
+      'label' => t('Chado => Organism'),
+      'real field' => 'organism_id',
+      'base' => 'organism',
+      'base field' => 'organism_id'
+    ),
+  );
+
+  // Add node relationship to organism
+  $data['chado_organism']['organism_chado_nid'] = array(
+    'group' => 'Organism',
+    'title' => 'Organism Node',
+    'help' => 'Links Chado Organism 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_organism/views/organism.views.inc

@@ -94,7 +94,24 @@ function retrieve_organism_views_data() {
       	'handler' => 'views_handler_field_computed_organism_nid',
     	),    
   	);
-	}
+  } else {
+    // Add relationship between chado_organism and organism
+    $data['organism']['organism_nid'] = array(
+      'group' => 'Organism',
+      'title' => 'Organism Node',
+      'help' => 'Links Chado Organism Fields/Data to the Nodes in the current View.',
+      'real field' => 'organism_id',
+      'relationship' => array(
+        'handler' => 'views_handler_relationship',
+        'title' => t('Organism => Chado'),
+        'label' => t('Organism => Chado'),
+        'real field' => 'organism_id',
+        'base' => 'chado_organism',
+        'base field' => 'organism_id'
+      ),
+    );
+
+  }
 	
   // Field: abbreviation (varchar 255)
   $data['organism']['abbreviation'] = array(