function chado_organism_delete
2.x tripal_organism.chado_node.inc | chado_organism_delete($node) |
3.x tripal_organism.chado_node.inc | chado_organism_delete($node) |
1.x tripal_organism.module | chado_organism_delete($node) |
Implements hook_delete().
Delete organism from both drupal and chado databases. Check dependency before deleting from chado.
Related topics
File
- legacy/
tripal_organism/ includes/ tripal_organism.chado_node.inc, line 578 - Implements the organims node content type
Code
function chado_organism_delete($node) {
$organism_id = chado_get_id_from_nid('organism', $node->nid);
// if we don't have an organism id for this node then this isn't a node of
// type chado_organism or the entry in the chado_organism table was lost.
if (!$organism_id) {
return;
}
// Remove data from the {chado_organism}, {node}, and {node_revisions} tables
$sql_del = "DELETE FROM {chado_organism} WHERE nid = :nid AND vid = :vid";
db_query($sql_del, array(':nid' => $node->nid, ':vid' => $node->vid));
$sql_del = "DELETE FROM {node} WHERE nid = :nid AND vid = :vid";
db_query($sql_del, array(':nid' => $node->nid, ':vid' => $node->vid));
$sql_del = "DELETE FROM {node_revision} WHERE nid = :nid AND vid = :vid";
db_query($sql_del, array(':nid' => $node->nid, ':vid' => $node->vid));
// Test dependency before deleting from chado database. If a library or
// feature depends on this organism, don't delete it
$sql = "SELECT feature_id FROM {feature} WHERE organism_id = :organism_id";
$check_feature = chado_query($sql, array(':organism_id' => $organism_id))->fetchObject();
$sql = "SELECT library_id FROM {library} WHERE organism_id = :organism_id";
$check_lib = chado_query($sql, array(':organism_id' => $organism_id))->fetchObject();
$sql = "SELECT stock_id FROM {stock} WHERE organism_id = :organism_id";
$check_stock = chado_query($sql, array(':organism_id' => $organism_id))->fetchObject();
if (!$check_lib && !$check_feature && !$check_stock) {
chado_delete_record('organism', array('organism_id' => $organism_id));
}
else {
drupal_set_message(t("Warning: other data depends on this organism. The organism page was removed from this site but the organism was removed from Chado."), 'warning');
}
}