cv_id) { tripal_db_set_active($previous_db); tripal_add_cv('tripal', 'Terms used by Tripal for modules to manage data such as that stored in property tables like featureprop, analysisprop, etc'); tripal_db_set_active('chado'); $cv = db_fetch_object(db_query("SELECT * FROM {cv} WHERE name = '$cv_name'")); } $db = db_fetch_object(db_query("SELECT * FROM {db} WHERE name = '$db_name'")); if (!$db->db_id) { tripal_db_set_active($previous_db); tripal_add_db('tripal', 'Used as a database placeholder for tripal defined objects such as tripal cvterms', '', ''); tripal_db_set_active('chado'); $db = db_fetch_object(db_query("SELECT * FROM {db} WHERE name = '$db_name'")); } // check to see if the dbxref already exists if not then add it $sql = "SELECT * FROM {dbxref} WHERE db_id = $db->db_id and accession = '$name'"; $dbxref = db_fetch_object(db_query($sql)); if(!$dbxref){ db_query("INSERT INTO {dbxref} (db_id,accession) VALUES ($db->db_id,'$name')"); $dbxref = db_fetch_object(db_query($sql)); } // now add the cvterm only if it doesn't already exist $sql = "SELECT * FROM {cvterm} ". "WHERE cv_id = $cv->cv_id and dbxref_id = $dbxref->dbxref_id and name = '$name'"; $cvterm = db_fetch_object(db_query($sql)); if(!$cvterm){ $result = db_query("INSERT INTO {cvterm} (cv_id,name,definition,dbxref_id) ". "VALUES ($cv->cv_id,'$name','$definition',$dbxref->dbxref_id)"); } tripal_db_set_active($previous_db); // now use drupal database if(!$result){ // TODO -- ERROR HANDLING } } /** * * * @ingroup tripal_core */ function tripal_add_db($db_name,$description,$urlprefix,$url){ $previous_db = tripal_db_set_active('chado'); // use chado database // use this SQL statement to get the db_id for the database name $id_sql = "SELECT db_id FROM {db} WHERE name = '%s'"; $db = db_fetch_object(db_query($id_sql,$db_name)); // if the database doesn't exist then let's add it. if(!$db->db_id){ $sql = " INSERT INTO {db} (name,description,urlprefix,url) VALUES ('%s','%s','%s','%s'); "; db_query($sql,$db_name,$description,$urlprefix,$url); # now get the id for this new db entry $db = db_fetch_object(db_query($id_sql,$db_name)); } tripal_db_set_active($previous_db); // now use drupal database return $db->db_id; } /** * * * @ingroup tripal_core */ function tripal_delete_db($db_name){ $previous_db = tripal_db_set_active('chado'); // use chado database $sql = "DELETE FROM {db} WHERE name ='%s'"; db_query($sql,$db_name); tripal_db_set_active($previous_db); // now use drupal database } /** * * * @ingroup tripal_core */ function tripal_add_cv($cv_name,$definition){ $previous_db = tripal_db_set_active('chado'); // use chado database // use this SQL statement to get the db_id for the database name $id_sql = "SELECT cv_id FROM {cv} WHERE name = '%s'"; $cv = db_fetch_object(db_query($sql,$cv_name)); // if the database doesn't exist then let's add it. if(!$cv){ $sql = " INSERT INTO {cv} (name,definition) VALUES ('%s','%s'); "; db_query($sql,$cv_name,$definition); # now get the id for this new db entry $cv = db_fetch_object(db_query($sql,$cv_name)); } tripal_db_set_active($previous_db); // now use drupal database return $cv->cv_id; } /************************************************************************ * Get cvterm_id for a tripal cvterm by passing its name */ function tripal_get_cvterm_id ($cvterm){ $sql = "SELECT CVT.cvterm_id FROM {cvterm} CVT INNER JOIN cv ON cv.cv_id = CVT.cv_id WHERE CVT.name = '$cvterm' AND CV.name = 'tripal'"; return db_result(chado_query($sql)); }