You are here

function search_api_saved_searches_index_edit_validate in Search API Saved Searches 7

Form validation handler for search_api_saved_searches_index_edit().

See also

search_api_saved_searches_index_edit()

search_api_saved_searches_index_edit_submit()

File

./search_api_saved_searches.admin.inc, line 527
Admin UI functions and form callbacks for saved searches.

Code

function search_api_saved_searches_index_edit_validate(array $form, array &$form_state) {
  $values =& $form_state['values'];
  $interval_options = $values['options']['interval_options'];
  $values['options']['interval_options'] = array();
  foreach (explode("\n", $interval_options) as $line) {
    $parts = explode('|', $line, 2);
    if (count($parts) == 1) {
      $k = $v = trim($line);
    }
    else {
      list($k, $v) = array_map('trim', $parts);
    }
    $values['options']['interval_options'][$k] = $v;
  }
  if ($values['options']['user_select_interval']) {
    foreach ($values['options']['interval_options'] as $k => $v) {
      if (!preg_match('/^-?\\d+$/', $k)) {
        form_error($form['options']['interval_options'], t('"@input" is not a valid integer. Only integers can be used as intervals.', array(
          '@input' => $k,
        )));
      }
    }
  }
  elseif ($values['options']['set_interval'] == 0) {
    $v = $values['options']['set_interval_custom'];
    if (!preg_match('/^-?\\d+$/', $v)) {
      form_error($form['options']['set_interval_custom'], t('"@input" is not a valid integer. Only integers can be used as intervals.', array(
        '@input' => $v,
      )));
    }
  }
}