|  | @@ -347,15 +347,16 @@ function tripal_core_views_data(){
 | 
	
		
			
				|  |  |          );
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // now add the handlers
 | 
	
		
			
				|  |  | -        $sql = "SELECT * FROM {tripal_views_handlers} WHERE setup_id = '$setup_id' AND column_name = '$base_field'";
 | 
	
		
			
				|  |  | -        $handlers = db_query($sql);
 | 
	
		
			
				|  |  | +        $sql = "SELECT * FROM {tripal_views_handlers} WHERE setup_id = %d AND column_name = '%s'";
 | 
	
		
			
				|  |  | +        $handlers = db_query($sql,$setup_id,$base_field);
 | 
	
		
			
				|  |  |          while($handler = db_fetch_object($handlers)){
 | 
	
		
			
				|  |  | -           $data[$base_table][$base_field][$handler->hander_type]['handler'] = $handler->handler_name;
 | 
	
		
			
				|  |  | +           $data[$base_table][$base_field][$handler->handler_type]['handler'] = $handler->handler_name;
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |       // now add the joins
 | 
	
		
			
				|  |  | -     $joins = db_query("SELECT * FROM {tripal_views_join} WHERE setup_id = '$setup_id'");
 | 
	
		
			
				|  |  | +     $sql = "SELECT * FROM {tripal_views_join} WHERE setup_id = %d";
 | 
	
		
			
				|  |  | +     $joins = db_query($sql,$setup_id);
 | 
	
		
			
				|  |  |       while($join = db_fetch_object($joins)){               
 | 
	
		
			
				|  |  |          $left_table = $join->left_table;
 | 
	
		
			
				|  |  |          $left_field = $join->left_field;
 | 
	
	
		
			
				|  | @@ -367,7 +368,7 @@ function tripal_core_views_data(){
 | 
	
		
			
				|  |  |            'field' => $base_field,
 | 
	
		
			
				|  |  |          );
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        // check to see if this table is one that correlates with Drupal nodes
 | 
	
		
			
				|  |  | +        // check to see if the join table is one that correlates with Drupal nodes
 | 
	
		
			
				|  |  |          // if so, there will be a chado_<table_name> table in the Drupal database
 | 
	
		
			
				|  |  |          // if there is, then we need to add the linking join information
 | 
	
		
			
				|  |  |          $sql = "SELECT tablename FROM pg_tables WHERE tablename = 'chado_$left_table'";
 | 
	
	
		
			
				|  | @@ -390,61 +391,55 @@ function tripal_core_views_data(){
 | 
	
		
			
				|  |  |  function tripal_core_views_data_alter(&$data) {
 | 
	
		
			
				|  |  |      $tvi_query = db_query('SELECT * FROM {tripal_views}');
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    //tvi = tripal_views_integration
 | 
	
		
			
				|  |  | +    // iterate through the views that we manage
 | 
	
		
			
				|  |  |      while($tvi_row = db_fetch_object($tvi_query)){
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |        //ids we'll use for queries
 | 
	
		
			
				|  |  |        $mview_id = $tvi_row->mview_id;
 | 
	
		
			
				|  |  |        $setup_id = $tvi_row->setup_id;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -      //let's get the name of the table
 | 
	
		
			
				|  |  | -      $base_table = '';
 | 
	
		
			
				|  |  | -      if($mview_id){
 | 
	
		
			
				|  |  | -         $mview_table = db_fetch_object(db_query("SELECT name, mv_specs FROM {tripal_mviews} WHERE mview_id = '$mview_id';"));
 | 
	
		
			
				|  |  | -         $base_table = $mview_table->name;
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -      else {
 | 
	
		
			
				|  |  | -         // TODO: get the non materialized view info and populate these variables
 | 
	
		
			
				|  |  | -         //  1) $base_table
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |        // iterate through the columns and alter the existing data array for
 | 
	
		
			
				|  |  |        // joins to other tables
 | 
	
		
			
				|  |  | -      $joins = db_query("SELECT * FROM {tripal_views_join} WHERE setup_id = '$setup_id'");
 | 
	
		
			
				|  |  | +      $sql = "SELECT * FROM {tripal_views_join} WHERE setup_id = %d";
 | 
	
		
			
				|  |  | +      $joins = db_query($sql,$setup_id);
 | 
	
		
			
				|  |  |        while($join = db_fetch_object($joins)){                       
 | 
	
		
			
				|  |  | -        $left_table = $tmj_row->left_join;
 | 
	
		
			
				|  |  | -        $left_field = $tmj_row->left_column;
 | 
	
		
			
				|  |  | -        $base_field = $tmj_row->base_column;      
 | 
	
		
			
				|  |  | - 
 | 
	
		
			
				|  |  | +        $left_table = $join->left_table;
 | 
	
		
			
				|  |  | +        $left_field = $join->left_field;
 | 
	
		
			
				|  |  | +        $base_field = $join->base_field;  
 | 
	
		
			
				|  |  | +        $base_table = $join->base_table;    
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          // add the recipricol join entries for each column
 | 
	
		
			
				|  |  | -        $data[$left_table]['table']['join'][$base_table] = array(
 | 
	
		
			
				|  |  | -          'left_field' => $base_field,
 | 
	
		
			
				|  |  | -          'field' => $left_field,
 | 
	
		
			
				|  |  | -        );
 | 
	
		
			
				|  |  | +        if(array_key_exists($left_table,$data)){
 | 
	
		
			
				|  |  | +           $data[$left_table]['table']['join'][$base_table] = array(
 | 
	
		
			
				|  |  | +             'left_field' => $base_field,
 | 
	
		
			
				|  |  | +             'field' => $left_field,
 | 
	
		
			
				|  |  | +           );
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // check to see if this table is one that correlates with Drupal nodes
 | 
	
		
			
				|  |  |          // if so, there will be a chado_<table_name> table in the Drupal database
 | 
	
		
			
				|  |  |          // if there is, then we need to add the linking join information.  We did
 | 
	
		
			
				|  |  |          // this step in the hook_views_data function above, but now we need 
 | 
	
		
			
				|  |  |          // to add the reciprical joins
 | 
	
		
			
				|  |  | -        $sql = "SELECT tablename FROM pg_tables WHERE tablename = 'chado_$left_table'";
 | 
	
		
			
				|  |  | -        if(db_fetch_object(db_query($sql))){
 | 
	
		
			
				|  |  | +        $sql = "SELECT tablename FROM pg_tables WHERE tablename = '%s'";
 | 
	
		
			
				|  |  | +        if(db_fetch_object(db_query($sql,"chado_$left_table"))){
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |             // join the linker table to the mview
 | 
	
		
			
				|  |  | -           $data["chado_$left_table"]['table']['join'][$base_table] = array(
 | 
	
		
			
				|  |  | -             'left_field' => $base_field,
 | 
	
		
			
				|  |  | -             'field' => $left_field,
 | 
	
		
			
				|  |  | -           );
 | 
	
		
			
				|  |  | +           if(array_key_exists("chado_$left_table",$data)){
 | 
	
		
			
				|  |  | +              $data["chado_$left_table"]['table']['join'][$base_table] = array(
 | 
	
		
			
				|  |  | +                'left_field' => $base_field,
 | 
	
		
			
				|  |  | +                'field' => $left_field,
 | 
	
		
			
				|  |  | +              );
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -           // Join the node table to the view by way of the chado linker table
 | 
	
		
			
				|  |  | -           $data['node']['table']['join'][$base_table] = array(
 | 
	
		
			
				|  |  | -           	'left_table' => "chado_$left_table",
 | 
	
		
			
				|  |  | -           	'left_field' => 'nid',
 | 
	
		
			
				|  |  | -           	'field' => 'nid',
 | 
	
		
			
				|  |  | -           );
 | 
	
		
			
				|  |  | +              // Join the node table to the view by way of the chado linker table
 | 
	
		
			
				|  |  | +              $data['node']['table']['join'][$base_table] = array(
 | 
	
		
			
				|  |  | +              	'left_table' => "chado_$left_table",
 | 
	
		
			
				|  |  | +              	'left_field' => 'nid',
 | 
	
		
			
				|  |  | +              	'field' => 'nid',
 | 
	
		
			
				|  |  | +              );           
 | 
	
		
			
				|  |  | +           }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      return $data;
 | 
	
		
			
				|  |  |  }
 |