function tripal_pub_sync_pub

1.x pub_sync.inc tripal_pub_sync_pub($pub)

Parameters

$pub: A publication object

Return value

A new Drupal node object on success. FALSE on failure

1 call to tripal_pub_sync_pub()
tripal_pub_sync_pubs in tripal_pub/includes/pub_sync.inc

File

tripal_pub/includes/pub_sync.inc, line 65

Code

function tripal_pub_sync_pub($pub) {
  global $user;

  if (!$pub->pyear) {
    watchdog('tpub_sync', "Skipping pub without published year: %title.", 
    array('%title' => $pub->title), WATCHDOG_WARNING);
    return FALSE;
  }

  $new_node = new stdClass();
  $new_node->pub_id = $pub->pub_id;
  $new_node->type = 'chado_pub';
  $new_node->uid = $user->uid;
  $new_node->title = substr($pub->title, 0, 255); // node titles can't be longer than 255 characters
  $new_node->pubtitle = $pub->title;
  $new_node->pyear = $pub->pyear;
  $new_node->uniquename = $pub->uniquename;
  $new_node->type_id = $pub->type_id;
  $new_node->series_name = $pub->series_name;

  node_validate($new_node);
  $errors = form_get_errors();
  if (!$errors) {
    $node = node_submit($new_node);
    node_save($node);
    if ($node->nid) {
      print "Added " . $pub->pub_id . "\n";
    }
    else {
      watchdog('tpub_sync', "Unable to create publication node: %title.", 
      array('%title' => $pub->title), WATCHDOG_ERROR);
      return FALSE;
    }
  }
  // if there are form errors then we need to reset the form errors cache, print a message and return
  else {
    form_set_error(NULL, '', TRUE);
    watchdog('tpub_sync', "Unable to create publication node: %title\n%errs", 
    array('%title' => $pub->title, '%errs' => print_r($errors, TRUE)), WATCHDOG_ERROR);
    return FALSE;
  }
  return $node;
}