public function obi__organism::validate
3.x obi__organism.inc | public obi__organism::validate($entity_type, $entity, $langcode, $items, &$errors) |
Overrides TripalField::validate
See also
File
- tripal_chado/
includes/ TripalFields/ obi__organism/ obi__organism.inc, line 43
Class
Code
public function validate($entity_type, $entity, $langcode, $items, &$errors) {
// If we don't have an entity then we don't want to validate. The case
// where this could happen is when a user is editing the field settings
// and trying to set a default value. In that case there's no entity and
// we don't want to validate. There will always be an entity for creation
// and update operations of a content type.
if (!$entity) {
return;
}
$settings = $this->field['settings'];
$field_name = $this->field['field_name'];
$field_type = $this->field['type'];
$field_table = $this->instance['settings']['chado_table'];
$field_column = $this->instance['settings']['chado_column'];
// Set the linker field appropriately.
if ($field_table == 'biomaterial') {
$linker_field = 'chado-biomaterial__taxon_id';
}
else {
$linker_field = 'chado-' . $field_table . '__organism_id';
}
// Get the field values.
foreach ($items as $delta => $values) {
// Get the field values.
$organism_id = $values[$linker_field];
if (!$organism_id or $organism_id == 0) {
$errors[$field_name]['und'][0][] = array(
'message' => t("Please specify an organism."),
'error' => 'obi__organism_id'
);
}
}
}