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

TripalField::validate()

File

tripal_chado/includes/TripalFields/obi__organism/obi__organism.inc, line 43

Class

obi__organism

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'
      );
    }
  }
}