public function sio__vocabulary::validate

3.x sio__vocabulary.inc public sio__vocabulary::validate($entity_type, $entity, $langcode, $items, &$errors)

Overrides TripalField::validate

See also

TripalField::validate()

File

tripal_chado/includes/TripalFields/sio__vocabulary/sio__vocabulary.inc, line 41

Class

sio__vocabulary

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'];

  // Get the field values.
  foreach ($items as $delta => $values) {

    // Get the field values.
    $cv_id = $values['chado-' . $field_table . '__cv_id'];
    if (!$cv_id or $cv_id == 0) {
      $errors[$field_name]['und'][0][] = array(
        'message' => t("Please specify a vocabulary."),
        'error' => 'chado-' . $field_table . '__cv_id'
      );
    }
  }
}