Index: views_fusion.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/views_fusion/views_fusion.module,v retrieving revision 1.14 diff -u -r1.14 views_fusion.module --- views_fusion.module 12 May 2007 13:34:46 -0000 1.14 +++ views_fusion.module 26 Oct 2008 08:11:29 -0000 @@ -341,6 +341,17 @@ //join new node table for the fused view $joininfo = $table_data[$fuse_view->use_alias_prefix . 'node']['join']; + + // Get correct table name + $joininfo['left']['table'] = $fusion->uses; + + // get correct column + if ($fusion->uses =='nodefamily_parent'){ + $joininfo['left']['field'] = 'child_nid'; + } else { + $joininfo['left']['field'] = 'parent_nid'; + } + if ($num > 1) { $joininfo['left']['table'] = $joininfo['left']['table'] . $num; } @@ -399,11 +410,20 @@ } $query1->tablequeue = array_merge($query1->tablequeue, $query2->tablequeue); - $query1->joins = array_merge($query1->joins, $query2->joins); + // Joins + foreach ($query2->joins as $table => $joins) { + foreach ($joins as $num => $join) { + $query1->joins[$table][$num] = $join; + } + } $query1->fields = array_merge($query1->fields, $query2->fields); $query1->where = array_merge($query1->where, $query2->where); $query1->where_args = array_merge($query1->where_args, $query2->where_args); $query1->orderby = array_merge($query1->orderby, $query2->orderby); + // Tables + foreach ($query2->tables as $table => $num) { + $query1->tables[$table] = (isset($query1->tables[$table]) ? max($query1->tables[$table], $num) : $num); + } } /* @@ -427,6 +447,7 @@ $view1->exposed_filter = array_merge($view1->exposed_filter, $view2->exposed_filter); $view1->argument = array_merge($view1->argument, $view2->argument); + $view1->filter = array_merge($view1->filter, $view2->filter); }