You are here

function node_import_check_node_reference in Node import 6

Check if the value is a valid node reference (by nid or title).

Uses: $field['output_format']. Either 'nid' (default) or 'title'.

Related topics

1 string reference to 'node_import_check_node_reference'
node_import_fields in ./node_import.inc
Returns a list of available content fields for given node_import type.

File

./node_import.inc, line 1265
Public API of the Node import module.

Code

function node_import_check_node_reference(&$value, $field, $options, $preview) {
  if (($nid = node_import_get_object('node', $value)) !== NULL || ($nid = db_result(db_query("SELECT nid FROM {node} WHERE nid = %d OR LOWER(title) = '%s' LIMIT 1", is_numeric($value) && intval($value) > 0 ? $value : -1, drupal_strtolower($value))))) {
    node_import_set_object('node', $value, $nid);
    $value = $nid;
    $field['output_format'] = isset($field['output_format']) ? $field['output_format'] : 'nid';
    switch ($field['output_format']) {
      case 'title':
        if (($title = node_import_get_object('node:title', $nid)) || ($title = db_result(db_query("SELECT title FROM {node} WHERE nid = %d LIMIT 1", $nid)))) {
          $value = $title;
          node_import_set_object('node:title', $nid, $title);
        }
        break;
      case 'nid':
      default:
        break;
    }
    return TRUE;
  }
  node_import_input_error(t('Input error: %value is not allowed for %name (not a node reference).', array(
    '%value' => $value,
    '%name' => $field['title'],
  )));
  return FALSE;
}