function tripal_stock_add_ONE_relationship_form_validate
1.x tripal_stock-relationships.inc | tripal_stock_add_ONE_relationship_form_validate($form, &$form_state) |
Related topics
File
- tripal_stock/
includes/ tripal_stock-relationships.inc, line 107 - @todo Add file header description
Code
function tripal_stock_add_ONE_relationship_form_validate($form, &$form_state) {
//Require Validation if adding
if ($form_state['clicked_button']['#value'] == t('Add a Relationship')) {
// check valid stock selected for subject
$subject_results = tripal_stock_get_stock_by_name_identifier($form_state['values']['subject_id'], $_SESSION['organism']);
if (sizeof($subject_results) > 1) {
$links = array();
for ($i = 0; $i < sizeof($subject_results); $i++) {
$links[] = l($i + 1, "node/" . $subject_results[$i]->nid);
}
$message = "Too many stocks match '" . $form_state['values']['subject_id'] . "'! "
. " Please refine your input to match ONLY ONE stock. <br />"
. "To aid in this process, here are the stocks that match your initial input: "
. join(', ', $links);
form_set_error('subject_id', $message);
}
elseif (sizeof($subject_results) < 1) {
form_set_error('subject_id', t("There are no stocks matching your input. Please check your input for typos and/or lookup the stock <a href='!url'>here</a>", array('!url' => url('stocks'))));
}
elseif (sizeof($subject_results) == 1) {
$form_state['values']['subject_id'] = $subject_results[0]->stock->stock_id;
}
// check valid stock selected for object
$object_results = tripal_stock_get_stock_by_name_identifier($form_state['values']['object_id'], $_SESSION['organism']);
if (sizeof($object_results) > 1) {
$links = array();
for ($i = 0; $i < sizeof($object_results); $i++) {
$links[] = l($i + 1, "node/" . $object_results[$i]->nid);
}
$message = t("Too many stocks match '%object'! Please refine your input to match
ONLY ONE stock. <br /> To aid in this process, here are the stocks that match your
initial input: %stocks.",
array('%object' => $form_state['values']['object_id'],
'%stocks' => join(', ', $links)
)
);
form_set_error('object_id', $message);
}
elseif (sizeof($object_results) < 1) {
form_set_error('object_id', t("There are no stocks matching your input. Please check your input for typos and/or lookup the stock <a href='!url'>here</a>", array('!url' => url('stocks'))));
}
elseif (sizeof($object_results) == 1) {
$form_state['values']['object_id'] = $object_results[0]->stock->stock_id;
}
// check valid type selected
if ($form_state['values']['type_id'] == 0) {
form_set_error('type_id', 'Please select a type of relationship.');
}
else {
$tmp_obj = db_fetch_object(chado_query("SELECT count(*) as count FROM {cvterm} WHERE cvterm_id=%d", $form_state['values']['type_id']));
if ($tmp_obj->count != 1) {
form_set_error('type_id', 'The type you selected is not valid. Please choose another one.');
}
}
// check either subject or object is the current stock
if ($subject_results[0]->nid != $form_state['values']['rel_nid']) {
if ($object_results[0]->nid != $form_state['values']['rel_nid']) {
form_set_error('subject_id', 'Either Subject or Object must be the current stock (' . $form_state['values']['r_stock_uniquename'] . ').');
}
}
} //end of require validation if adding relationship
}