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;
}