| 
					
				 | 
			
			
				@@ -67,6 +67,9 @@ function tripal_stock_views_handlers() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      'views_handler_filter_stockprop_id' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      	'parent' => 'views_handler_filter', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     'views_handler_argument_stockprop_id' => array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     	'parent' => 'views_handler_argument_string', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -92,75 +95,78 @@ function tripal_stock_views_pre_render	(&$view) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			$stock_ids[$row_num] = $row->stock_id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		//-----Properties------------------------------------------ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		$field_names = array_keys($view->field); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		//if any property fields are in the current view 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		$property_field_names = preg_grep('/properties/',$field_names); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (!empty($property_field_names)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			$sql = "SELECT stockprop.*, cvterm.name as type_name FROM stockprop " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				."INNER JOIN cvterm cvterm ON stockprop.type_id=cvterm.cvterm_id " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				."WHERE stockprop.stock_id IN (".implode(',',$stock_ids).")"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			$previous_db = db_set_active('chado'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			$resource = db_query($sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			db_set_active($previous_db); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if (sizeof($stock_ids)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			//-----Properties------------------------------------------ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			$field_names = array_keys($view->field); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			//if any property fields are in the current view 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			$property_field_names = preg_grep('/properties/',$field_names); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (!empty($property_field_names)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				$sql = "SELECT stockprop.*, cvterm.name as type_name FROM stockprop " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					."INNER JOIN cvterm cvterm ON stockprop.type_id=cvterm.cvterm_id " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					."WHERE stockprop.stock_id IN (".implode(',',$stock_ids).")"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				$previous_db = db_set_active('chado'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				$resource = db_query($sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				db_set_active($previous_db); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			$view->result[$key]->properties = array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			while ($r = db_fetch_object($resource)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				$key = array_search($r->stock_id, $stock_ids); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				$view->result[$key]->properties[] = $r; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				$view->result[$key]->properties = array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				while ($r = db_fetch_object($resource)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					$key = array_search($r->stock_id, $stock_ids); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					$view->result[$key]->properties[] = $r; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		//-----Relationships---------------------------------------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		//if any relationship fields are in the current view 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		$relationship_field_names = preg_grep('/relationships/', $field_names); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (!empty($relationship_field_names)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			$sql = "SELECT stock_relationship.*, cvterm.name as type_name, " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				."subject_stock.name as subject_name, object_stock.name as object_name " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				."FROM stock_relationship " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				."LEFT JOIN stock subject_stock ON stock_relationship.subject_id=subject_stock.stock_id " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				."LEFT JOIN stock object_stock ON stock_relationship.object_id=object_stock.stock_id " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				."LEFT JOIN cvterm cvterm ON stock_relationship.type_id = cvterm.cvterm_id " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				."WHERE stock_relationship.subject_id IN (".implode(',',$stock_ids).") " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				."OR stock_relationship.object_id IN (".implode(',',$stock_ids).") "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			$previous_db = db_set_active('chado'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			$resource = db_query($sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			db_set_active($previous_db); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			//-----Relationships---------------------------------------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			//if any relationship fields are in the current view 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			$relationship_field_names = preg_grep('/relationships/', $field_names); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (!empty($relationship_field_names)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				$sql = "SELECT stock_relationship.*, cvterm.name as type_name, " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					."subject_stock.name as subject_name, object_stock.name as object_name " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					."FROM stock_relationship " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					."LEFT JOIN stock subject_stock ON stock_relationship.subject_id=subject_stock.stock_id " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					."LEFT JOIN stock object_stock ON stock_relationship.object_id=object_stock.stock_id " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					."LEFT JOIN cvterm cvterm ON stock_relationship.type_id = cvterm.cvterm_id " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					."WHERE stock_relationship.subject_id IN (".implode(',',$stock_ids).") " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					."OR stock_relationship.object_id IN (".implode(',',$stock_ids).") "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				$previous_db = db_set_active('chado'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				$resource = db_query($sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				db_set_active($previous_db); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			while ($r = db_fetch_object($resource)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if (in_array($r->subject_id, $stock_ids)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					$key = array_search($r->subject_id, $stock_ids); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					$r->stock_id = $r->subject_id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					$view->result[$key]->relationships[] = clone $r; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if (in_array($r->object_id, $stock_ids)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					$key = array_search($r->object_id, $stock_ids); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					$r->stock_id = $r->object_id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					$view->result[$key]->relationships[] = clone $r; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				while ($r = db_fetch_object($resource)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if (in_array($r->subject_id, $stock_ids)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						$key = array_search($r->subject_id, $stock_ids); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						$r->stock_id = $r->subject_id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						$view->result[$key]->relationships[] = clone $r; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if (in_array($r->object_id, $stock_ids)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						$key = array_search($r->object_id, $stock_ids); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						$r->stock_id = $r->object_id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						$view->result[$key]->relationships[] = clone $r; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		//-----DB References-------------------------------------------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		//if any dbxref fields are in the current view 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		$dbxref_field_names = preg_grep('/dbxref/',$field_names); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (!empty($dbxref_field_names)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			$sql = "SELECT stock_dbxref.*, dbxref.db_id, db.name as db_name, db.urlprefix, " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				."dbxref.accession, dbxref.version, dbxref.description " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				."FROM stock_dbxref " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				."LEFT JOIN dbxref dbxref ON stock_dbxref.dbxref_id=dbxref.dbxref_id " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				."LEFT JOIN db db ON dbxref.db_id=db.db_id " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				."WHERE stock_dbxref.stock_id IN (".implode(',',$stock_ids).")"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			$previous_db = db_set_active('chado'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			$resource = db_query($sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			db_set_active($previous_db); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			//-----DB References-------------------------------------------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			//if any dbxref fields are in the current view 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			$dbxref_field_names = preg_grep('/dbxref/',$field_names); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (!empty($dbxref_field_names)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				$sql = "SELECT stock_dbxref.*, dbxref.db_id, db.name as db_name, db.urlprefix, " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					."dbxref.accession, dbxref.version, dbxref.description " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					."FROM stock_dbxref " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					."LEFT JOIN dbxref dbxref ON stock_dbxref.dbxref_id=dbxref.dbxref_id " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					."LEFT JOIN db db ON dbxref.db_id=db.db_id " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					."WHERE stock_dbxref.stock_id IN (".implode(',',$stock_ids).")"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				$previous_db = db_set_active('chado'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				$resource = db_query($sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				db_set_active($previous_db); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			$view->result[$key]->dbxref = array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			while ($r = db_fetch_object($resource)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				$key = array_search($r->stock_id, $stock_ids); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				$view->result[$key]->dbxref[] = $r; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				$view->result[$key]->dbxref = array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				while ($r = db_fetch_object($resource)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					$key = array_search($r->stock_id, $stock_ids); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					$view->result[$key]->dbxref[] = $r; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} //if there are stocks 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} //if we're dealing with a stock view 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |