function tripal_organism_sync_organisms
1.x tripal_organism.admin.inc | tripal_organism_sync_organisms($organism_id = NULL, $job_id = NULL) |
Synchronize organisms from chado to drupal
Related topics
3 string references to 'tripal_organism_sync_organisms'
- drush_tripal_core_tripal_node_sync in tripal_core/
tripal_core.drush.inc - Sync's chado records with drupal creating nodes for the given chado-centric module.
- tripal_organism_admin_validate in tripal_organism/
includes/ tripal_organism.admin.inc - tripal_organism_job_describe_args in tripal_organism/
tripal_organism.module
File
- tripal_organism/
includes/ tripal_organism.admin.inc, line 314
Code
function tripal_organism_sync_organisms($organism_id = NULL, $job_id = NULL) {
global $user;
$page_content = '';
if (!$organism_id) {
$sql = "SELECT * FROM {Organism} O";
$results = chado_query($sql);
}
else {
$sql = "SELECT * FROM {organism} L WHERE organism_id = %d";
$results = chado_query($sql, $organism_id);
}
// We'll use the following SQL statement for checking if the organism
// already exists as a drupal node.
$sql = "SELECT * FROM {chado_organism} " .
"WHERE organism_id = %d";
while ($organism = db_fetch_object($results)) {
// check if this organism already exists in the drupal database. if it
// does then skip this organism and go to the next one.
if (!db_fetch_object(db_query($sql, $organism->organism_id))) {
$new_node = new stdClass();
$new_node->type = 'chado_organism';
$new_node->uid = $user->uid;
$new_node->title = "$organism->genus $organism->species";
$new_node->organism_id = $organism->organism_id;
$new_node->genus = $organism->genus;
$new_node->species = $organism->species;
$new_node->description = '';
node_validate($new_node);
if (!form_get_errors()) {
$node = node_submit($new_node);
node_save($node);
if ($node->nid) {
print "Added $organism->common_name\n";
}
}
else {
print "Failed to insert organism $organism->common_name\n";
}
}
else {
print "Skipped $organism->common_name\n";
}
}
return $page_content;
}