You are here

function _google_image_sitemap_create_form_validate in Google Image Sitemap 7

Same name and namespace in other branches
  1. 6 google_image_sitemap.module \_google_image_sitemap_create_form_validate()

Form validation handler for _google_image_sitemap_create_form().

File

./google_image_sitemap.module, line 198
A module gives to Google information about images on your site.

Code

function _google_image_sitemap_create_form_validate($form, &$form_state) {

  // Check for valid url.
  if (!empty($form_state['values']['license']) && !valid_url($form_state['values']['license'], TRUE)) {
    form_set_error('license', t('Lincese should be a valid url.'));
  }

  // Validate range start for integer.
  if (empty($form_state['values']['range_start'])) {
    form_set_error('range_start', t('Range start should be an integer and greater than 0 value.'));
  }

  // Validate range start for integer.
  if (!preg_match("/^([0-9]+)\$/", $form_state['values']['range_start'])) {
    form_set_error('range_start', t('Range start should be an integer.'));
  }

  // Validate range end for integer.
  if (!preg_match("/^([0-9]+)\$/", $form_state['values']['range_end'])) {
    form_set_error('range_end', t('Range end should be an integer value.'));
  }

  // Validate range start and end.
  if ($form_state['values']['range_start'] > $form_state['values']['range_end']) {
    form_set_error('range_start', t('Range start should be less than to Range end.'));
  }

  // Validate range end with datbase.
  $query = db_select('node', 'n');
  $query
    ->condition('n.type', $form_state['values']['node_type'], '=');
  $query
    ->condition('n.status', NODE_PUBLISHED);
  $query
    ->addExpression('COUNT(n.nid)', 'max_nid');

  // Validate range start and end.
  if ($form_state['values']['range_start'] > $query
    ->execute()
    ->fetchField()) {
    form_set_error('range_start', t('Range Start should not be greater than @max_nid (Node ID).', array(
      '@max_nid' => $query
        ->execute()
        ->fetchField(),
    )));
  }
  if ($form_state['values']['range_end'] > $query
    ->execute()
    ->fetchField()) {
    form_set_error('range_end', t('Range End should not be greater than @max_nid (Node ID).', array(
      '@max_nid' => $query
        ->execute()
        ->fetchField(),
    )));
  }
}