function tripal_stock_update_property
1.x tripal_stock-properties.inc | tripal_stock_update_property($stockprop_id, $cvterm_id, $value, $preferred, $nid) |
Related topics
1 call to tripal_stock_update_property()
- tripal_stock_edit_ALL_properties_form_submit in tripal_stock/
includes/ tripal_stock-properties.inc
File
- tripal_stock/
includes/ tripal_stock-properties.inc, line 288 - @todo Add file header description
Code
function tripal_stock_update_property($stockprop_id, $cvterm_id, $value, $preferred, $nid) {
$old_obj = db_fetch_object(chado_query("SELECT * FROM {stockprop} WHERE stockprop_id=%d", $stockprop_id));
// if they changed the type need to check rank
// (if there is another property of the same type then rank needs to be increased to prevent collisions)
if ($cvterm_id == $old_obj->type_id) {
chado_query(
"UPDATE {stockprop} SET type_id=%d, value='%s' WHERE stockprop_id=%d",
$cvterm_id,
$value,
$stockprop_id
);
}
else {
//determine the rank for this property
$max_rank = get_max_chado_rank('stockprop',
array('stock_id' => array('type' => 'INT', 'value' => $old_obj->stock_id),
'type_id' => array('type' => 'INT', 'value' => $cvterm_id)));
if ($max_rank == -1) {
$rank = 0;
}
else {
$rank = $max_rank + 1;
}
chado_query(
"UPDATE {stockprop} SET type_id=%d, value='%s', rank=%d WHERE stockprop_id=%d",
$cvterm_id,
$value,
$rank,
$stockprop_id
);
}
// Set Preferred Synonym
//use update node form so that both title and name get set
if ($preferred) {
$node = node_load($nid);
$node->title = $value;
$node_form_state = array(
'values' => array(
'title' => $value,
'op' => 'Save'
)
);
module_load_include('inc', 'node', 'node.pages');
drupal_execute('chado_stock_node_form', $node_form_state, $node);
}
}