1.20.x link.module link_field_validate($entity_type, $entity, $field, $instance, $langcode, $items, &$errors)

Implements hook_field_validate().

File

modules/link/link.module, line 261
Defines simple link field types.

Code

function link_field_validate($entity_type, $entity, $field, $instance, $langcode, $items, &$errors) {
  // When setting a default value on the field instance settings form, $entity
  // will be NULL. Do not validate the default provided values, which allows
  // for default titles to be provided but not a URL (or vice-versa). Invalid
  // or partial URLs are also acceptable for default values.
  if (is_null($entity)) {
    return;
  }

  // Validate each field individually. Populate the $optional_field_found
  // variable if any "required" values have been provided.
  $optional_field_found = FALSE;
  foreach ($items as $delta => $value) {
    _link_validate($items[$delta], $delta, $field, $entity, $instance, $langcode, $optional_field_found, $errors);
  }

  // If no values were provided across all values but the field itself is
  // required, throw a validation error on the first field.
  if ($instance['settings']['url'] === 'optional' && $instance['settings']['title'] === 'optional' && $instance['required'] && !$optional_field_found) {
    $errors[$field['field_name']][$langcode][0][] = array(
      'error' => 'link_required',
      'message' => t('At least one title or URL must be entered.'),
      'error_element' => array('url' => FALSE, 'title' => TRUE),
    );
  }
}