function nodeaccess_userreference_node_in_field_view in Node access user reference 7.3
Determine if any node falls into the view configured in the field settings.
Parameters
$data: The node access user reference settings for the field.
$nids: Array of node ids.
Return value
Boolean indicating if the entity is in the view defined by the field config.
2 calls to nodeaccess_userreference_node_in_field_view()
File
- ./
nodeaccess_userreference.module, line 651 - The Node access user reference module.
Code
function nodeaccess_userreference_node_in_field_view($data, $nids) {
$view_id = $data['views']['view'];
list($view_name, $view_display) = explode(':', $view_id);
if ($view = views_get_view($view_name)) {
// We add a display, and let it derive from the 'default' display.
$display = $view
->add_display('nodeaccess_userreference_views_plugin_display');
$view
->set_display($display);
// Get the options from the user supplied display.
if ($view_display != 'default' && isset($view->display[$view_display]->display_options)) {
$view->display[$display]->display_options = $view->display[$view_display]->display_options;
}
// TODO from merlinofchaos on IRC : arguments using summary view can defeat the style setting.
// We might also need to check if there's an argument, and set *its* style_plugin as well.
$view->display_handler
->set_option('style_plugin', 'nodeaccess_userreference_views_plugin_style');
$view->display_handler
->set_option('row_plugin', 'fields');
// Additional options to let node_reference_display::query()
// narrow the results.
$options = array(
'table' => 'node',
'field_id' => 'nid',
'ids' => $nids,
);
$view->display_handler
->set_option('nodeaccess_userreference_options', $options);
// TODO : for consistency, a fair amount of what's below
// should be moved to node_reference_display
// Limit to a single result.
$view->display_handler
->set_option('items_per_page', 1);
// Get arguments for the view.
if (!empty($data['views']['view_args'])) {
$view_args = array_map('trim', explode(',', $data['views']['view']));
}
else {
$view_args = array();
}
// Make sure the query is not cached
$view->is_cacheable = FALSE;
// Get the results.
$result = $view
->execute_display($display, $view_args);
}
else {
$result = FALSE;
}
return $result;
}