You are here

function _link_validate in Link 6.2

Same name and namespace in other branches
  1. 6 link.module \_link_validate()
  2. 7 link.module \_link_validate()
1 call to _link_validate()
link_field in ./link.module
Implementation of hook_field().

File

./link.inc, line 41
Helper functions for Link field, widget and form elements.

Code

function _link_validate(&$item, $delta, $field, $node, &$optional_field_found) {

  // neither of these keys are certain to be set
  $test = $item + array(
    'url' => NULL,
    'title' => NULL,
  );
  if ($test['url'] && !(isset($field['widget']['default_value'][$delta]['url']) && $test['url'] == $field['widget']['default_value'][$delta]['url'] && !$field['required'])) {

    // Validate the link.
    if (link_validate_url(trim($test['url'])) == FALSE) {
      form_set_error($field['field_name'] . '][' . $delta . '][url', t('Not a valid URL.'));
    }

    // Require a title for the link if necessary.
    if ($field['title'] == 'required' && strlen(trim($test['title'])) == 0) {
      form_set_error($field['field_name'] . '][' . $delta . '][title', t('Titles are required for all links.'));
    }
  }

  // Require a link if we have a title.
  if ((!isset($field['form_id']) || $field['form_id'] != 'content_field_edit_form') && $field['url'] !== 'optional' && strlen($test['title']) > 0 && strlen(trim($test['url'])) == 0) {
    form_set_error($field['field_name'] . '][' . $delta . '][url', t('You cannot enter a title without a link url.'));
  }

  // In a totally bizzaro case, where URLs and titles are optional but the field is required, ensure there is at least one link.
  if ($field['url'] == 'optional' && $field['title'] == 'optional' && (strlen(trim($test['url'])) != 0 || strlen(trim($test['title'])) != 0)) {
    $optional_field_found = TRUE;
  }
}