--- ReferencedByFilter0.module Fri Jun 06 00:13:02 2008 +++ ReferencedByFilter.module Sat Jun 07 03:50:35 2008 @@ -50,21 +50,28 @@ function referencedbyfilter_views_argume /** * Handler function for referencedbyfilter_views_arguments(). */ -function referencedbyfilter_arg_nid($op, &$query, $argtype, $arg = NULL) { +function referencedbyfilter_arg_nid($op, &$query, $argtype, $arg_s = NULL) { switch ($op) { case 'filter': - $nid = (int)$arg; - if (is_int($nid)) { - $node_reference_table = 'content_'. $argtype['options']; - $referencing_field = $argtype['options']; + $flag=true; + $arg_s = preg_split('/[+ ]/', $arg_s); + foreach ($arg_s as $arg) { + $nid = (int)$arg; + if (is_int($nid)) { + if($flag){ + $selectStr = ' '; + $node_reference_table = 'content_'. $argtype['options']; + $referencing_field = $argtype['options']; + $flag=false; + } //Retrieve the referenced nodes. $node = node_load($nid); - $selectStr = ' '; foreach ($node->$referencing_field as $referenced) { $selectStr .= $referenced['nid']. ','; } - $query->add_where('node.nid in ('. substr($selectStr,0,-1) . ') '); + } } + $query->add_where('node.nid in ('. substr($selectStr,0,-1) . ') '); break; } }