| 
					
				 | 
			
			
				@@ -1,1684 +0,0 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-<?php 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * Implements hook_field_create_info(). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * This is a Tripal defined hook that supports integration with the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * TripalEntity field. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function tripal_chado_bundle_create_fields($entity_type, $bundle, $chado_bundle) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // Get the details about the mapping of this bundle to the Chado table: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $details = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'chado_cvterm_id' => $chado_bundle['type_id'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'chado_table' => $chado_bundle['data_table'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'chado_type_table' => $chado_bundle['type_linker_table'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'chado_type_column' => $chado_bundle['type_column'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $info = array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // Create the fields for each column in the table. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  tripal_chado_bundle_create_fields_base($info, $details, $entity_type, $bundle); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // Create custom fields. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  tripal_chado_bundle_create_fields_custom($info, $details, $entity_type, $bundle); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // Create fields for linking tables. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  tripal_chado_bundle_create_fields_linker($info, $details, $entity_type, $bundle); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  foreach ($info as $field_name => $details) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_type = $details['type']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // If the field already exists then skip it. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field = field_info_field($details['field_name']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if ($field) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // Create the field. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field = field_create_field($details); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (!$field) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      tripal_set_message(t("Could not create new field: %field.", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          array('%field' =>  $details['field_name'])), TRIPAL_ERROR); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * @param unknown $details 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function tripal_chado_bundle_create_fields_base(&$info, $details, $entity_type, $bundle) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $table_name = $details['chado_table']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $type_table = $details['chado_type_table']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $type_field = $details['chado_type_column']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $cvterm_id  = $details['chado_cvterm_id']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // Iterate through the columns of the table and see if fields have been 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // created for each one. If not, then create them. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $schema = chado_get_schema($table_name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (!$schema) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $pkey = $schema['primary key'][0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // Get the list of columns for this table and create a new field for each one. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $columns = $schema['fields']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  foreach ($columns as $column_name => $details) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // Don't create base fields for the primary key and the type_id field. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if ($column_name == $pkey or $column_name == $type_field) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $cvterm = tripal_get_chado_semweb_term($table_name, $column_name, array('return_object' => TRUE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (!$cvterm) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      tripal_report_error('tripal', TRIPAL_ERROR, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'Cannot create field for "%table_name.%column_name". Missing an appropriate vocabulary term', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         array('%table_name' => $table_name, '%column_name' => $column_name)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      drupal_set_message(t('Cannot create field for "%table_name.%column_name". Missing an appropriate vocabulary term', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        array('%table_name' => $table_name, '%column_name' => $column_name)), 'error'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = strtolower($cvterm->dbxref_id->db_id->name . '__' . preg_replace('/ /', '_', $cvterm->name)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // Skip the primary key field. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if ($column_name == $schema['primary key'][0]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // Skip the type field. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if ($table_name == $type_table and $column_name == $type_field) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // Set some defaults for the field. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $base_info = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'type' => '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'cardinality' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'locked' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'storage' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'field_chado_storage', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // Alter the field info array depending on the column details. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    switch($details['type']) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      case 'char': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['type'] = 'text'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['settings']['max_length'] = $details['length']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      case 'varchar': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['type'] = 'text'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['settings']['max_length'] = $details['length']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      case 'text': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['type'] = 'text'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['settings']['max_length'] = 17179869184; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['settings']['text_processing'] = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      case 'blob': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // not sure how to support a blob field. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      case 'int': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['type'] = 'number_integer'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      case 'float': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['type'] = 'number_float'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['settings']['precision'] = 10; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['settings']['scale'] = 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['settings']['decimal_separator'] = '.'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      case 'numeric': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['type'] = 'number_decimal'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      case 'serial': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // Serial fields are most likely not needed as a field. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      case 'boolean': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['type'] = 'list_boolean'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['settings']['allowed_values'] = array(0 => "No", 1 => "Yes"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      case 'datetime': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // Use the Drupal Date and Date API to create the field/widget 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['type'] = 'datetime'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // Set some default semantic web information 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if ($column_name == 'uniquename') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['settings']['text_processing'] = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // PUB TABLE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    elseif ($table_name == 'pub' and $column_name == 'uniquename') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['type'] = 'text'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['settings']['text_processing'] = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // ANALYSIS TABLE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    elseif ($table_name == 'analysis' and $column_name == 'sourceuri') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['type'] = 'text'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['settings']['text_processing'] = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = $base_info; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * @param unknown $details 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function tripal_chado_bundle_create_fields_custom(&$info, $details, $entity_type, $bundle) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $table_name = $details['chado_table']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $type_table = $details['chado_type_table']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $type_field = $details['chado_type_column']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $cvterm_id  = $details['chado_cvterm_id']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $schema = chado_get_schema($table_name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // BASE ORGANISM_ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if ($table_name != 'organism' and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      array_key_exists('organism_id', $schema['fields'])) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'obi__organism'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_type = 'obi__organism'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'type' => $field_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'cardinality' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'locked' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'storage' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'field_chado_storage', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // BASE DBXREF 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (array_key_exists('dbxref_id', $schema['fields'])) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'data__accession'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_type = 'data__accession'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'type' => $field_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'cardinality' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'locked' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'storage' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'field_chado_storage', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // FEATURE MD5CHECKSUM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if ($table_name == 'feature') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'data__sequence_checksum'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_type = 'data__sequence_checksum'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'type' => $field_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'cardinality' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'locked' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'storage' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'field_chado_storage', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // FEATURE RESIDUES 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if ($table_name == 'feature') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'data__sequence'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_type = 'data__sequence'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'type' => $field_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'cardinality' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'locked' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'storage' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'field_chado_storage', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // FEATURE SEQLEN 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if ($table_name == 'feature') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'data__sequence_length'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_type = 'data__sequence_length'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'type' => $field_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'cardinality' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'locked' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'storage' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'field_chado_storage', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // GENE TRANSCRIPTS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $rel_table = $table_name . '_relationship'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (chado_table_exists($rel_table) and $bundle->label == 'gene') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'so__transcript'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_type = 'so__transcript'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'type' => $field_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'cardinality' => FIELD_CARDINALITY_UNLIMITED, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'locked' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'storage' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'field_chado_storage', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // ORGANISM TYPE_ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   if ($table_name == 'organism' and array_key_exists('type_id', $schema['fields'])) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//     $field_name = 'taxarank__infraspecific_taxon'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//     $field_type = 'taxarank__infraspecific_taxon'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//     $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       'type' => $field_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       'cardinality' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       'locked' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       'storage' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//         'type' => 'field_chado_storage', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//     ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * @param unknown $details 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function tripal_chado_bundle_create_fields_linker(&$info, $details, $entity_type, $bundle) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $table_name = $details['chado_table']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $type_table = $details['chado_type_table']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $type_field = $details['chado_type_column']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $cvterm_id  = $details['chado_cvterm_id']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // CONTACTS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $contact_table = $table_name . '_contact'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (chado_table_exists($contact_table)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $schema = chado_get_schema($contact_table); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $pkey = $schema['primary key'][0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = $table_name . '_contact'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_type = 'chado_linker__contact'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'type' => $field_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'cardinality' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'locked' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'storage' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'field_chado_storage', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // DBXREF 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $dbxref_table = $table_name . '_dbxref'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (chado_table_exists($dbxref_table)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'sbo__database_cross_reference'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_type = 'sbo__database_cross_reference'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' =>  $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'type' => $field_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'cardinality' => FIELD_CARDINALITY_UNLIMITED, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'locked' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'storage' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'field_chado_storage', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // EXPRESSION 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $expression_table = $table_name . '_expression'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (chado_table_exists($expression_table)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'go__gene_expression'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_type = 'go__gene_expression'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'type' => $field_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'cardinality' => FIELD_CARDINALITY_UNLIMITED, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'locked' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'storage' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'field_chado_storage', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // FEATURELOC 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if ($table_name == 'feature') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'data__sequence_coordinates'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_type = 'data__sequence_coordinates'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'type' => $field_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'cardinality' => FIELD_CARDINALITY_UNLIMITED, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'locked' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'storage' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'field_chado_storage', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // FEATUREPOS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if ($table_name == 'feature') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'ogi__location_on_map'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_type = 'ogi__location_on_map'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'type' => $field_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'cardinality' => FIELD_CARDINALITY_UNLIMITED, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'locked' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'storage' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'field_chado_storage', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // GENOTYPE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $genotype_table = $table_name . '_genotype'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (chado_table_exists($genotype_table)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'so__genotype'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_type = 'so__genotype'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'type' => $field_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'cardinality' => FIELD_CARDINALITY_UNLIMITED, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'locked' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'storage' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'field_chado_storage', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // PHENOTYPE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $phenotype_table = $table_name . '_phenotype'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (chado_table_exists($phenotype_table)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'sbo__phenotype'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_type = 'sbo__phenotype'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'type' => $field_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'cardinality' => FIELD_CARDINALITY_UNLIMITED, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'locked' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'storage' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'field_chado_storage', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // PROPERTIES 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $prop_table = $table_name . 'prop'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (chado_table_exists($prop_table)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // Get the list of existing property types for this table. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $sql = 'SELECT DISTINCT type_id FROM {' . $prop_table . '}'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $props = chado_query($sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    while ($prop = $props->fetchObject()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $term = chado_generate_var('cvterm', array('cvterm_id' => $prop->type_id)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $field_name = strtolower(preg_replace('/[^\w]/','_', $term->dbxref_id->db_id->name . '__' . $term->name)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $field_type = 'chado_linker__prop'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => $field_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'cardinality' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'locked' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'storage' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'type' => 'field_chado_storage', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // PUBLICATIONS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $pub_table = $table_name . '_pub'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (chado_table_exists($pub_table)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'schema__publication'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_type = 'schema__publication'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] =  array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'type' => $field_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'cardinality' => FIELD_CARDINALITY_UNLIMITED, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'locked' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'storage' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'field_chado_storage', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // RELATIONSHIPS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // If the linker table does not exists then we don't want to add attach. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $rel_table = $table_name . '_relationship'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (chado_table_exists($rel_table)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'sbo__relationship'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_type = 'sbo__relationship'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] =  array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'type' => $field_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'cardinality' => FIELD_CARDINALITY_UNLIMITED, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'locked' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'storage' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'field_chado_storage', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // SYNONYMS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $syn_table = $table_name . '_synonym'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (chado_table_exists($syn_table)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'schema__alternate_name'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_type = 'schema__alternate_name'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] =  array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'type' => $field_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'cardinality' => FIELD_CARDINALITY_UNLIMITED, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'locked' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'storage' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'field_chado_storage', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * Impelments hook_create_tripalfield_instance(). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * This is a Tripal defined hook that supports integration with the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * TripalEntity field. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function tripal_chado_bundle_create_instances($entity_type, $bundle, $chado_bundle) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $details = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'chado_cvterm_id' => $chado_bundle['type_id'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'chado_table' => $chado_bundle['data_table'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'chado_type_table' => $chado_bundle['type_linker_table'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'chado_type_column' => $chado_bundle['type_column'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  tripal_chado_bundle_create_instances_base($info, $entity_type, $bundle, $details); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  tripal_chado_bundle_create_instances_custom($info, $entity_type, $bundle, $details); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  tripal_chado_bundle_create_instances_linker($info, $entity_type, $bundle, $details); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  foreach ($info as $field_name => $details) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // If the field is already attached to this bundle then skip it. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field = field_info_field($details['field_name']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if ($field and array_key_exists('bundles', $field) and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        array_key_exists('TripalEntity', $field['bundles']) and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        in_array($bundle->name, $field['bundles']['TripalEntity'])) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // Create the field instance. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $instance = field_create_instance($details); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * Helper function for the hook_create_tripalfield_instance(). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * Add the field instances that corresond to the columns of the base table. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * @param $entity_type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * @param $bundle 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * @param $details 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function tripal_chado_bundle_create_instances_base(&$info, $entity_type, $bundle, $details) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $fields = array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // Get Chado information 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $table_name = $details['chado_table']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $type_table = $details['chado_type_table']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $type_field = $details['chado_type_column']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $cvterm_id  = $details['chado_cvterm_id']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // Iterate through the columns of the table and see if fields have been 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // created for each one. If not, then create them. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $schema = chado_get_schema($table_name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (!$schema) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $pkey = $schema['primary key'][0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $columns = $schema['fields']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  foreach ($columns as $column_name => $details) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // Don't create base fields for the primary key and the type_id field. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if ($column_name == $pkey or $column_name == $type_field) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $cvterm = tripal_get_chado_semweb_term($table_name, $column_name, array('return_object' => TRUE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (!$cvterm) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // We already provided an error when creating the base field.  So 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // don't create another one here. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = strtolower($cvterm->dbxref_id->db_id->name . '__' . preg_replace('/ /', '_', $cvterm->name)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // Skip the primary key field. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if ($column_name == $schema['primary key'][0]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // Skip the type field. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if ($table_name == $type_table and $column_name == $type_field) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $base_info =  array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'entity_type' => 'TripalEntity', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'bundle' => $bundle->name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'label' => ucwords(preg_replace('/_/', ' ', $column_name)), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'description' => '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'required' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'auto_attach' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'term_vocabulary' => $cvterm->dbxref_id->db_id->name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'term_name' => $cvterm->name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'term_accession' => $cvterm->dbxref_id->accession, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_table' => $table_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_column' => $column_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'base_table' => $table_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'widget' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'display_label' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'display' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'default' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'label' => 'inline', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'settings' => array(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // Determine if the field is required. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (array_key_exists('not null', $details) and $details['not null'] === TRUE) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['required'] = TRUE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // Alter the field info array depending on the column details. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    switch($details['type']) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      case 'char': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['widget']['type'] = 'text_textfield'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      case 'varchar': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['widget']['type'] = 'text_textfield'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      case 'text': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['widget']['type'] = 'text_textarea'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['widget']['settings']['format'] = filter_default_format(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      case 'blob': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // not sure how to support a blob field. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      case 'int': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['widget']['type'] = 'number'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      case 'float': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['widget']['type'] = 'number'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      case 'numeric': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['widget']['type'] = 'number'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      case 'serial': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // Serial fields are most likely not needed as a field. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      case 'boolean': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['widget']['type'] = 'options_onoff'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['required'] = FALSE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      case 'datetime': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['widget']['type'] = 'date_select'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['widget']['settings']['increment'] = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['widget']['settings']['tz_handling'] = 'none'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $base_info['widget']['settings']['collapsible'] = TRUE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // TODO: Add settings so that the minutes increment by 1. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // And turn off the timezone, as the Chado field doesn't support it. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // Set some default semantic web information 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if ($column_name == 'uniquename') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['label'] = 'Identifier'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['widget_type'] = 'text_textfield'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    elseif ($base_info['label'] == 'Timeaccessioned') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['label'] = 'Time Accessioned'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['description'] = 'Please enter the time that this record was first added to the database.'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    elseif ($base_info['label'] == 'Timelastmodified') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['label'] = 'Time Last Modified'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['description'] = 'Please enter the time that this record was last modified. The default is the current time.'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // ORGANISM TABLE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    elseif ($table_name == 'organism' and $column_name == 'comment') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['label'] = 'Description'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // PUB TABLE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    elseif ($table_name == 'pub' and $column_name == 'uniquename') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['widget_type'] = 'text_textfield'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // ANALYSIS TABLE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    elseif ($table_name == 'analysis' and $column_name == 'program') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['description'] = 'The program name (e.g. blastx, blastp, sim4, genscan. If the analysis was not derived from a software package then provide a very brief description of the pipeline, workflow or method.'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['label'] = 'Program, Pipeline, Workflow or Method Name.'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    elseif ($table_name == 'analysis' and $column_name == 'sourceuri') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['widget_type'] = 'text_textfield'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['label'] = 'Source URL'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['description'] = 'The URL where the original source data was derived.  Ideally, this should link to the page where more information about the source data can be found.'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    elseif ($table_name == 'analysis' and $column_name == 'sourcename') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['label'] = 'Source Name'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['description'] = 'The name of the source data. This could be a file name, data set or a small description for how the data was collected. For long descriptions use the larger description field.'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    elseif ($table_name == 'analysis' and $column_name == 'sourceversion') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['label'] = 'Source Version'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['description'] = 'If hte source data set has a version include it here.'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    elseif ($table_name == 'analysis' and $column_name == 'algorithm') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['label'] = 'Source Version'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['description'] = 'The name of the algorithm used to produce the dataset if different from the program.'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    elseif ($table_name == 'analysis' and $column_name == 'programversion') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['label'] = 'Program Version'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['description'] = 'The version of the program used to perform this analysis. (e.g. TBLASTX 2.0MP-WashU [09-Nov-2000]. Enter "n/a" if no version is available or applicable.'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // PROJECT TABLE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    elseif ($table_name == 'project' and $column_name == 'description') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $base_info['label'] = 'Short Description'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = $base_info; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * Helper function for the hook_create_tripalfield_instance(). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * Adds custom fields for base fields.  These override the settings provided 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * in the tripal_chado_create_tripalfield_instance_base() function. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * @param $entity_type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * @param $bundle 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * @param $details 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function tripal_chado_bundle_create_instances_custom(&$info, $entity_type, $bundle, $details) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $table_name = $details['chado_table']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $type_table = $details['chado_type_table']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $type_field = $details['chado_type_column']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $cvterm_id  = $details['chado_cvterm_id']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $schema = chado_get_schema($table_name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // BASE ORGANISM_ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if ($table_name != 'organism' and array_key_exists('organism_id', $schema['fields'])) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'obi__organism'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $is_required = FALSE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (array_key_exists('not null', $schema['fields']['organism_id']) and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $schema['fields']['organism_id']['not null']) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $is_required = TRUE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] =  array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'entity_type' => $entity_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'bundle' => $bundle->name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'label' => 'Organism', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'description' => 'Select an organism.', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'required' => $is_required, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'auto_attach' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_table' => $table_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_column' => 'organism_id', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'base_table' => $table_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'widget' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'obi__organism_widget', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'display_label' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'display' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'default' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'label' => 'inline', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'type' => 'obi__organism_formatter', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'settings' => array(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // BASE DBXREF 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (array_key_exists('dbxref_id', $schema['fields'])) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'data__accession'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'entity_type' => $entity_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'bundle' => $bundle->name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'label' => 'Accession', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'description' => 'This field specifies the unique stable accession (ID) for 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this record. It requires that this site have a database entry.', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'required' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'auto_attach' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_table' => $table_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_column' => 'dbxref_id', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'base_table' => $table_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'widget' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'data__accession_widget', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'display_label' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'display' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'default' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'label' => 'inline', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'type' => 'data__accession_formatter', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'settings' => array(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // FEATURE MD5CHECKSUM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if ($table_name == 'feature') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'data__sequence_checksum'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'entity_type' => $entity_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'bundle' => $bundle->name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'label' => 'Sequence Checksum', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'description' => 'The MD5 checksum for the sequence. The checksum here 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        will always be unique for the raw unformatted sequence. To verify that the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        sequence has not been corrupted, download the raw sequence and use an MD5 tool 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        to calculate the value. If the value calculated is identical the one shown 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        here, then the downloaded sequence is uncorrupted.', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'required' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'auto_attach' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_table' => $table_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_column' => 'md5checksum', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'base_table' => $table_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'widget' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'data__sequence_checksum_widget', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'display_label' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'md5_fieldname' => 'feature__md5checksum', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'display' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'default' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'label' => 'inline', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'type' => 'data__sequence_checksum_formatter', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'settings' => array(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // FEATURE RESIDUES 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if ($table_name == 'feature') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'data__sequence'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'entity_type' => $entity_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'bundle' => $bundle->name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'label' => 'Sequence', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'description' => 'All available sequences for this record.', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'required' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'auto_attach' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_table' => $table_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_column' => 'residues', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'base_table' => $table_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'widget' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'data__sequence_widget', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'display_label' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'display' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'default' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'label' => 'above', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'type' => 'data__sequence_formatter', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'settings' => array(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // FEATURE SEQLEN 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if ($table_name == 'feature') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'data__sequence_length'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'entity_type' => $entity_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'bundle' => $bundle->name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'label' => 'Sequence Length', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'description' => 'The number of residues in the raw sequence.  This length 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        is only for the assigned raw sequence and does not represent the length of any 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        sequences derived from alignments. If this value is zero but aligned sequences 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        are present then this record has no official assigned sequence.', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'required' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'auto_attach' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_table' => $table_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_column' => 'seqlen', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'base_table' => $table_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'widget' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'data__sequence_length_widget', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'display_label' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'display' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'default' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'label' => 'inline', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'type' => 'data__sequence_length_formatter', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'settings' => array(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // GENE TRANSCRIPTS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $rel_table = $table_name . '_relationship'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (chado_table_exists($rel_table) and $bundle->label == 'gene') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'so__transcript'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'entity_type' => $entity_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'bundle' => $bundle->name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'label' => 'Transcripts', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'description' => 'Transcripts that are part of this gene.', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'required' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'auto_attach' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_table' => $rel_table, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_column' => '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'base_table' => $table_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'widget' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'so__transcript_widget', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'display_label' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'display' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'default' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'label' => 'above', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'type' => 'so__transcript_formatter', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'settings' => array(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // ORGANISM TYPE_ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   if ($table_name == 'organism' and array_key_exists('type_id', $schema['fields'])) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//     $field_name = 'taxarank__infraspecific_taxon'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//     $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       'entity_type' => $entity_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       'bundle' => $bundle->name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       'label' => 'Infraspecific Taxon', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       'description' => 'The Infraspecific Taxon.', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       'required' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//         'auto_attach' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//         'chado_table' => 'organism', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//         'chado_column' => 'type_id', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//         'base_table' => 'organism', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       'widget' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//         'type' => 'taxarank__infraspecific_taxon_widget', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//         'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//           'display_label' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//         ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       'display' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//         'default' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//           'label' => 'inline', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//           'type' => 'taxarank__infraspecific_taxon_formatter', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//           'settings' => array(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//         ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//     ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * @param unknown $entity_type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * @param unknown $bundle 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * @param unknown $details 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function tripal_chado_bundle_create_instances_linker(&$info, $entity_type, $bundle, $details) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $table_name = $details['chado_table']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $type_table = $details['chado_type_table']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $type_field = $details['chado_type_column']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $cvterm_id  = $details['chado_cvterm_id']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // CONTACTS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $contact_table = $table_name . '_contact'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (chado_table_exists($contact_table)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = $table_name . '_contact'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] =     $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'entity_type' => $entity_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'bundle' => $bundle->name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'label' => 'Contact', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'description' => 'Associates an indviddual or organization with this record', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'required' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'auto_attach' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_table' => $contact_table, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'base_table' => $table_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_column' => 'contact_id', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'widget' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'local__contact_widget', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'display_label' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'display' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'default' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'label' => 'above', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'type' => 'local__contact_formatter', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'settings' => array(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // DBXREF 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $dbxref_table = $table_name . '_dbxref'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (chado_table_exists($dbxref_table)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'sbo__database_cross_reference'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $schema = chado_get_schema($dbxref_table); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $pkey = $schema['primary key'][0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] =  array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' =>  $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'entity_type' => $entity_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'bundle' => $bundle->name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'label' => 'Database Cross Reference', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'description' => 'The IDs where this record may be available in other external online databases.', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'required' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'auto_attach' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_table' => $dbxref_table, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_column' => $pkey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'base_table' => $table_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'widget' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'sbo__database_cross_reference_widget', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'display_label' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'display' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'default' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'label' => 'inline', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'type' => 'sbo__database_cross_reference_formatter', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'settings' => array(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // EXPRESSION 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $expression_table = $table_name . '_expression'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (chado_table_exists($expression_table)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'go__gene_expression'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $schema = chado_get_schema($expression_table); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $pkey = $schema['primary key'][0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'entity_type' => $entity_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'bundle' => $bundle->name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'label' => 'Gene expression', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'description' => 'Information about the expression of this record.', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'required' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'auto_attach' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_table' => $expression_table, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_column' => $pkey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'base_table' => $table_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'widget' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'go__gene_expression_widget', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'display_label' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'display' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'default' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'label' => 'above', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'type' => 'go__gene_expression_formatter', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'settings' => array(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // FEATURELOC 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if ($table_name == 'feature') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'data__sequence_coordinates'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $schema = chado_get_schema('featureloc'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $pkey = $schema['primary key'][0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'entity_type' => $entity_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'bundle' => $bundle->name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'label' => 'Sequence Coordinates', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'description' => 'The locations on other genomic sequences where this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        record has been aligned.', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'required' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'auto_attach' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_table' => 'featureloc', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_column' => $pkey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'base_table' => 'feature', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'widget' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'data__sequence_coordinates_widget', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'display_label' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'display' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'default' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'label' => 'above', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'type' => 'data__sequence_coordinates_formatter', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'settings' => array(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // FEATUREPOS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if ($table_name == 'feature') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'ogi__location_on_map'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $schema = chado_get_schema('featurepos'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $pkey = $schema['primary key'][0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'entity_type' => $entity_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'bundle' => $bundle->name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'label' => 'Location on Map', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'description' => 'The positions on a genetic map.', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'required' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'auto_attach' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_table' => 'featurepos', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_column' => $pkey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'base_table' => 'feature', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'widget' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'ogi__location_on_map_widget', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'display_label' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'display' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'default' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'label' => 'above', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'type' => 'ogi__location_on_map_formatter', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'settings' => array(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // GENOTYPE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $genotype_table = $table_name . '_genotype'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (chado_table_exists($genotype_table)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'so__genotype'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $schema = chado_get_schema($genotype_table); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $pkey = $schema['primary key'][0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'entity_type' => $entity_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'bundle' => $bundle->name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'label' => 'Genotype', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'description' => 'The genotypes associated with this record.', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'required' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'auto_attach' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_table' => $genotype_table, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_column' => $pkey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'base_table' => $table_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'widget' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'so__genotype_widget', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'display_label' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'display' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'default' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'label' => 'above', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'type' => 'so__genotype_formatter', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'settings' => array(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // PHENOTYPE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $phenotype_table = $table_name . '_phenotype'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (chado_table_exists($phenotype_table)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'sbo__phenotype'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $schema = chado_get_schema($phenotype_table); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $pkey = $schema['primary key'][0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'entity_type' => $entity_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'bundle' => $bundle->name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'label' => 'Phenotype', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'description' => 'The phenotypes associated with this record.', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'required' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'auto_attach' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_table' => $phenotype_table, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_column' => $pkey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'base_table' => $table_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'widget' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'sbo__phenotype_widget', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'display_label' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'display' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'default' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'label' => 'above', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'type' => 'sbo__phenotype_formatter', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'settings' => array(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // PROPERTIES 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $prop_table = $table_name . 'prop'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (chado_table_exists($prop_table)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     // Get the list of existing property types for this table. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     $sql = 'SELECT DISTINCT type_id FROM {' . $prop_table . '}'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     $props = chado_query($sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     $schema = chado_get_schema($prop_table); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     $pkey = $schema['primary key'][0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     while ($prop = $props->fetchObject()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       $term = chado_generate_var('cvterm', array('cvterm_id' => $prop->type_id)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       $field_name = strtolower(preg_replace('/[^\w]/','_', $term->dbxref_id->db_id->name . '__' . $term->name)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         'entity_type' => $entity_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         'bundle' => $bundle->name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         'label' => ucwords(preg_replace('/_/', ' ', $term->name)), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         'description' => $term->definition, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         'required' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-           'auto_attach' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-           'term_vocabulary' => $term->dbxref_id->db_id->name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-           'term_accession' => $term->dbxref_id->accession, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-           'term_name' => $term->name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-           'base_table' => $table_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-           'chado_table' => $prop_table, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-           'chado_column' => $pkey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         'widget' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-           'type' => 'chado_linker__prop_widget', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-           'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-             'display_label' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-           ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         'display' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-           'default' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-             'label' => 'inline', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-             'type' => 'chado_linker__prop_formatter', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-             'settings' => array(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-           ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // PUBLICATIONS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $pub_table = $table_name . '_pub'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (chado_table_exists($pub_table)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'schema__publication'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $schema = chado_get_schema($pub_table); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $pkey = $schema['primary key'][0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'entity_type' => $entity_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'bundle' => $bundle->name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'label' => 'Publication', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'description' => 'This record has been referenced or is sourced from these publications.', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'required' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'auto_attach' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_table' => $pub_table, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_column' => $pkey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'base_table' => $table_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'widget' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'schema__publication_widget', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'display_label' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'display' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'default' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'label' => 'above', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'type' => 'schema__publication_formatter', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'settings' => array(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // RELATIONSHIPS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // If the linker table does not exists then we don't want to add attach. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $rel_table = $table_name . '_relationship'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (chado_table_exists($rel_table)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'sbo__relationship'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $schema = chado_get_schema($rel_table); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $pkey = $schema['primary key'][0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'entity_type' => $entity_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'bundle' => $bundle->name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'label' => 'Relationship', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'description' => 'Other records with relationships to this record.', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'required' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'auto_attach' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_table' => $rel_table, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_column' => $pkey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'base_table' => $table_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'widget' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'sbo__relationship_widget', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'display_label' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'display' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'default' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'label' => 'above', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'type' => 'sbo__relationship_formatter', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'settings' => array(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // SYNONYMS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $syn_table = $table_name . '_synonym'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (chado_table_exists($syn_table)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_name = 'schema__alternate_name'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $schema = chado_get_schema($syn_table); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $pkey = $schema['primary key'][0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $info[$field_name] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'entity_type' => $entity_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'bundle' => $bundle->name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'label' => 'Synonyms', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'description' => 'Alternate names, aliases or synonyms for this record.', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'required' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'auto_attach' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_table' => $syn_table, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'chado_column' => $pkey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'base_table' => $table_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'widget' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'schema__alternate_name_widget', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'display_label' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'display' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'default' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'label' => 'inline', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'type' => 'schema__alternate_name_formatter', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'settings' => array(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * Implements hook_form_FORM_ID_alter(). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * The field_ui_field_overview_form is used for ordering and configuring the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * fields attached to an entity. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * This function removes the property adder field as that is really not meant 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * for users to show or manage. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function tripal_chado_form_field_ui_field_overview_form_alter(&$form, &$form_state, $form_id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // Remove the kvproperty_addr field as it isn't ever displayed. It's just used 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // on the add/edit form of an entity for adding new property fields. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $fields_names = element_children($form['fields']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  foreach ($fields_names as $field_name) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $field_info = field_info_field($field_name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if ($field_info['type'] == 'kvproperty_adder') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      unset($form['fields'][$field_name]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if ($field_info['type'] == 'cvterm_class_adder') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      unset($form['fields'][$field_name]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * Implements hook_form_field_ui_field_overview_add_new(). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function tripal_chado_form_field_ui_field_overview_add_new($new_field, $bundle) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // Get the table this bundle is mapped to. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $term = tripal_load_term_entity(array('term_id' => $bundle->term_id)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $vocab = $term->vocab; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $params = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'vocabulary' => $vocab->vocabulary, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'accession' => $term->accession, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $mapped_table = chado_get_cvterm_mapping($params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $chado_table = $mapped_table->chado_table; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $chado_type_table = $mapped_table->chado_table; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $chado_type_column = $mapped_table->chado_field; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // We allow site admins to add new chado_linker__prop fields to an entity. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // This function will allow us to properly add them.  But at this point we 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // don't know the controlled vocabulary term.  We'll have to use the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // defaults and let the user set it using the interface. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if ($new_field['type'] == 'chado_linker__prop') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $table_name = $chado_table . 'prop'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (chado_table_exists($table_name)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $schema = chado_get_schema($table_name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $pkey = $schema['primary key'][0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $field_name = $new_field['field_name']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $field_type = 'chado_linker__prop'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // First add the field. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      field_create_field(array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => $field_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'cardinality' => FIELD_CARDINALITY_UNLIMITED, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'locked' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'storage' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'type' => 'field_chado_storage', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'base_table' => $chado_table, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'chado_table' => $table_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'chado_column' => $pkey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      )); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // Now add the instance 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      field_create_instance(array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'entity_type' => 'TripalEntity', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'bundle' => $bundle->name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'label' => $new_field['label'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'description' => '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'required' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'auto_attach' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'widget' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'type' => 'chado_linker__prop_widget', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'display_label' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'display' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'default' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'label' => 'inline', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'type' => 'chado_linker__prop_formatter', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'settings' => array(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      )); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      drupal_set_message('Cannot add a property field to this entity. Chado does not support properties for this data type.', 'error'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // We allow site admins to add new chado_linker__cvterm fields to an entity. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // This function will allow us to properly add them.  But at this point we 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // don't know the controlled vocabulary term.  We'll have to use the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // defaults and let the user set it using the interface. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if ($new_field['type'] == 'chado_linker__cvterm') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $table_name = $chado_table . '_cvterm'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (chado_table_exists($table_name)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $schema = chado_get_schema($table_name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $pkey = $schema['primary key'][0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $field_name = $new_field['field_name']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $field_type = 'chado_linker__cvterm'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // First add the field. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      field_create_field(array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => $field_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'cardinality' => FIELD_CARDINALITY_UNLIMITED, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'locked' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'storage' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'type' => 'field_chado_storage', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'base_table' => $chado_table, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'chado_table' => $table_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'chado_column' => $pkey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      )); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // Now add the instance 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      field_create_instance(array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'field_name' => $field_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'entity_type' => 'TripalEntity', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'bundle' => $bundle->name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'label' => $new_field['label'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'description' => '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'required' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'auto_attach' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'widget' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'type' => 'chado_linker__cvterm_widget', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'settings' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'display_label' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'display' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'default' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'label' => 'above', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'type' => 'chado_linker__cvterm_formatter', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'settings' => array(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      )); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      drupal_set_message('Cannot add a property field to this entity. Chado does not support annotations for this data type.', 'error'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * Allows for altering of a field's instance setting form. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * This appears to be a Drupal hook but is actually a custom function created 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * by this module. It is called by the tripal_form_alter() function of this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * module. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * Here we put additional form elements for any field, regardless if it is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * a tripalField or not. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * @param $form 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- *   The form array.  Alterations to the form can be made within this array. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * @param $form_state 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- *   The form state array. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function tripal_chado_field_instance_settings_form_alter(&$form, $form_state) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  global $language; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $field = $form['#field']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $instance = $form['#instance']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // Only show the Chado mapping information for field instances that map 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // to Chado. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (!array_key_exists('chado_table',$instance['settings'])) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // Construct a table for the vocabulary information. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $headers = array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $rows = array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $rows[] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'data' => 'Base Table', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'header' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'width' => '20%', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $instance['settings']['base_table'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $rows[] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'data' => 'Record Table', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'header' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'width' => '20%', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $instance['settings']['chado_table'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $rows[] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'data' => 'ID Column', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'header' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'width' => '20%', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $instance['settings']['chado_column'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $table = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'header' => $headers, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'rows' => $rows, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'attributes' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'sticky' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'caption' => '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'colgroups' => array(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'empty' => '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $form['chado_mapping'] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    '#type' => 'fieldset', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    '#title' => 'Chado Mapping', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    '#description' => t('This field maps to data in Chado to the following table:'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $form['chado_mapping']['details'] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    '#type' => 'item', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    '#markup' => theme_table($table), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-<<<<<<< HEAD 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-======= 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * Implements hook_form_FROM_ID_alter() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function tripal_chado_form_tripalbundle_form_alter(&$form, $form_state) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  global $language; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $bundle = $form['#bundle']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $term = entity_load('TripalTerm', array('id' => $bundle->term_id)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $term = reset($term); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $vocab = $term->vocab; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $params = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'vocabulary' => $vocab->vocabulary, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'accession' => $term->accession, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $mapped_table = chado_get_cvterm_mapping($params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $chado_table = $mapped_table->chado_table; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $chado_column = $mapped_table->chado_field; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // Construct a table for the vocabulary information. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $headers = array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $rows = array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $rows[] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'data' => 'Chado Table', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'header' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'width' => '20%', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $chado_table 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $rows[] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'data' => 'Type Column', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'header' => TRUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'width' => '20%', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $chado_column 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $table = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'header' => $headers, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'rows' => $rows, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'attributes' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'sticky' => FALSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'caption' => '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'colgroups' => array(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'empty' => '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $form['chado_mapping'] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    '#type' => 'item', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    '#title' => 'Chado Mapping', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    '#markup' => theme_table($table), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    '#description' => t('This content type maps to the table in Chado 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        listed above.  Chado allows multiple data types to be housed 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        in a single table. Therefore, the column that is used to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        differentiate between data types is also listed above.'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    '#weight' => 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				->>>>>>> a584591704c14877292a457afa4b1e793853f9f6 
			 |