6c6 < * This module allows views to query the nodes referenced by a certain node reference field. --- > * This module allows views to query the nodes referenced by a certain reference fields. 8,9c8,9 < * You can use it to filter results from a node reference, and show referenced nodes with pager. < * Results are returned in the order they wree entered in the node reference field. --- > * You can use it to filter results from a reference, and show referenced nodes with pager. > * Results are returned in the order they were entered in the node reference field. 18,20c18,20 < 'referencedbyfilter' => array( < 'name' => t('Node Reference: Views on node reference'), < 'handler' => t('referencedbyfilter_arg_nid'), --- > 'referencedbynidfilter' => array( > 'name' => t('Node Reference: Nodes referenced by NID'), > 'handler' => referencedbyfilter_arg_nid, 23c23 < '#options' => referencedbyfilter_retrieve_existing_reference_fields(), --- > '#options' => referencedbyfilter_retrieve_existing_reference_fields('nodereference'), 27a28,37 > 'referencedbyuidfilter' => array( > 'name' => t('User Reference: Nodes created by the users referenced by NID'), > 'handler' => referencedbyfilter_arg_uid, > 'option' => array( > '#type' => 'select', > '#options' => referencedbyfilter_retrieve_existing_reference_fields('userreference'), > ), > 'help' => t('This argument allows views to query the nodes which were created by a user referenced by a certain user reference field. > In the options field specify the referencing field.'), > ), 63a74,105 > /** > * Handler function for referencedbyfilter_views_arguments(). > */ > function referencedbyfilter_arg_uid($op, &$query, $argtype, $arg = NULL) { > switch ($op) { > case 'filter': > $nid = (int)$arg; > if (is_int($nid)) { > $node_reference_table = 'content_'. $argtype['options']; > $referencing_field = $argtype['options']; > $node = node_load($nid); > if (!empty($node->$referencing_field)) { > $joininfo = array( > 'type' => 'INNER', > 'left' => array( > 'table' => 'node', > 'field' => 'uid', > ), > 'right' => array( > // Join to the referenced field. > 'field' => $referencing_field .'_uid', > ), > ); > $query->add_table($node_reference_table, FALSE, 1, $joininfo); > $query->add_field($referencing_field .'_uid', $node_reference_table); > $query->add_where($node_reference_table. '.nid = %d', $nid); > } > } > break; > } > } > 67c109 < function referencedbyfilter_retrieve_existing_reference_fields() { --- > function referencedbyfilter_retrieve_existing_reference_fields($type = nodereference) { 70,71c112,113 < if ($field['type'] == 'nodereference') { < $existing_reference_fields[$field['field_name']] = $field['field_name']; --- > if ($field['type'] == $type) { > $existing_reference_fields[$field['field_name']] = $field['widget']['label']. ' (' .$field['field_name'].')';