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