| 
					
				 | 
			
			
				@@ -436,22 +436,20 @@ function tripal_ds_field_display_alter(&$display, $context){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   $field_name = $context['field']['field_name']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   $bundle = $context['entity']->bundle; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   $bundle_info = tripal_load_bundle_entity(array('name' => $bundle)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $entity_info = entity_get_info('TripalEntity'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  //watchdog('debug', '<pre>$entity_info: '. print_r($entity_info, TRUE) .'</pre>'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $hide_variable = tripal_get_bundle_variable('hide_empty_field', $bundle_info->id, ''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if($field_name){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if($field_name && ($hide_variable == 'hide')){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     $field = field_get_items('TripalEntity', $context['entity'], $field_name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if($field) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if(tripal_ds_field_is_empty($field, $field)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $parent_field_info = tripal_ds_find_field_group_parent($field_name, 'TripalEntity', $bundle); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if(tripal_field_is_empty($field, $field)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $parent_field_info = tripal_ds_find_field_group_parent($field_name, 'TripalEntity', $bundle, $context); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if(!empty($parent_field_info)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           $increment = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           foreach($parent_field_info as $parent_fields => $parent_field){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // Stop the right rail element from rendering. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            drupal_add_css('.'.$parent_field_info[$increment]->group_name.' {display:none;}', 'inline'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            drupal_add_css('.'.$field_name.' {display:none;}', 'inline'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            drupal_add_css('.'.$parent_field_info[$increment].' {display:none;}', 'inline'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // Hide any associated menu links. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            drupal_add_css('#'.$parent_field_info[$increment]->group_name.' {display:none;}', 'inline'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            drupal_add_css('#'.$parent_field_info[$increment].' {display:none;}', 'inline'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -468,59 +466,49 @@ function tripal_ds_field_display_alter(&$display, $context){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * @return array 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function tripal_ds_find_field_group_parent($field_name, $entity_type, $bundle){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function tripal_ds_find_field_group_parent($field_name, $entity_type, $bundle, $context){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   $field_groups_to_hide = array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   $increment = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // Get the field groups associated with this bundle. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   $fg_for_bundle = db_select('field_group', 'fg') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ->fields('fg') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ->condition('bundle', $bundle, '=') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ->condition('entity_type', $entity_type, '=') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ->execute()->fetchAll(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // Run through the field groups looking for the provided $field_name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   foreach ($fg_for_bundle as $field_groups => $field_group) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    $field_group_data = unserialize($field_group->data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if(!empty($field_group_data['children'][0])){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $field_group_child = $field_group_data['children'][0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if($field_group_child == $field_name){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //If a field group has the $field_name as a child add it to the list to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //return to be hidden. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $field_groups_to_hide[$increment] = $field_group; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $increment++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   // There is a separate function to deal with tables, so disregard. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if ($field_group_data['format_type'] == 'table'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // Do nothing 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    elseif (!empty($field_group_data['children'][0])) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $children = $field_group_data['children']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //If there is more than one child all need to be checked. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (count($children) > 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        foreach ($children as $kids => $child) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // Now check if each child if empty. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          $field = field_get_items('TripalEntity', $context['entity'], $child); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if(!tripal_field_is_empty($field, $field)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //If any of the fields are not empty do not add the parent. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $field_groups_to_hide[$increment] = $field_group->group_name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      elseif($children[0] == $field_name) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $field_groups_to_hide[$increment] = $field_group->group_name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $increment++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // Remove duplicate values. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   $field_groups_to_hide = array_unique($field_groups_to_hide); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   return $field_groups_to_hide; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- *  Implements _field_group_table_rows_alter(). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * @param $element 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * @param $children 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * NEEDS TO BE MOVED SO IT IS ONLY CALLED WHEN APPROPRIATE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function tripal_ds_field_group_table_rows_alter(&$element, &$children) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  foreach ($children as $index => $child) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (is_array($element[$child])) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if ($element[$child]['#formatter'] == 'text_default') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if ($element[$child][0]['#markup'] == NULL) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          // This is an empty row, remove it 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          unset($children[$index]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          unset($element[$child]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * Implements hook_field_is_empty(). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function tripal_ds_field_is_empty($item, $field) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (empty($item[0]['value']) && $item[0]['value'] !== '0') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return TRUE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  return FALSE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 |