function noderelationships_noderef_page_search in Node Relationships 6
Build the search and reference page.
1 call to noderelationships_noderef_page_search()
- noderelationships_noderef_page in ./
noderelationships.pages.inc - Menu callback; Search or Create and reference.
File
- ./
noderelationships.pages.inc, line 445 - Implementation of user land pages.
Code
function noderelationships_noderef_page_search($referrer_type, $field_name, $referrer_field, $view_name, $display_id, $field_multiple) {
// Load the view and check access to the given display.
if (!($view = views_get_view($view_name)) || !$view
->access($display_id)) {
drupal_set_message(t('Could not load the view %view:%display.', array(
'%view' => $view_name,
'%display' => $display_id,
)), 'error');
watchdog('noderelationships', 'Could not load the view %view:%display.', array(
'%view' => $view_name,
'%display' => $display_id,
), WATCHDOG_ERROR);
return;
}
// Add javascript to the search and reference page.
$js_settings = array(
'maxAllowedValues' => $field_multiple == 1 ? 0 : ($field_multiple == 0 ? 1 : $field_multiple),
);
drupal_add_js(array(
'nodeRelationships' => $js_settings,
), 'setting');
jquery_ui_add(array(
'ui.sortable',
'effects.transfer',
));
// Prepare values for the view arguments as follows:
// 0 - type of the referrer node.
// 1 - name of the nodereference field in the referrer type.
$view_args = array(
$referrer_type,
$field_name,
);
// Make sure the view is completely valid.
$errors = $view
->validate();
if (is_array($errors)) {
foreach ($errors as $error) {
drupal_set_message($error, 'error');
}
return '';
}
// Execute the view display.
$output = $view
->execute_display($display_id, $view_args);
if (!empty($output)) {
if ($referrer_field['multiple'] && $js_settings['maxAllowedValues'] != 1) {
$output = theme('noderelationships_noderef_multiselect', $referrer_field) . "\n" . $output;
}
else {
$output = theme('noderelationships_noderef_singleselect', $referrer_field) . "\n" . $output;
}
}
return $output;
}