You are here

function datereminder_settings_form_validate in Date Reminder 6

Same name and namespace in other branches
  1. 6.2 includes/admin.settings.inc \datereminder_settings_form_validate()
  2. 7 datereminder.admin.inc \datereminder_settings_form_validate()

Validate the administrative settings.

Parameters

array $form: Form just submitted

array $form_state: And state thereof

File

includes/admin.settings.inc, line 117
Forms for administrative settings.

Code

function datereminder_settings_form_validate($form, &$form_state) {
  module_load_include('inc', 'datereminder', 'includes/defines');
  $vals = $form_state['values'];
  $cron_rate = $vals['datereminder_cron_frequency'];
  if (!is_numeric($cron_rate) || $cron_rate < 5) {
    form_set_error('datereminder_cron_frequency', t('Cron frequency needs to be a number and at least 5'));
  }
  $maxrem = $vals['datereminder_max_reminders'];
  if (!is_numeric($maxrem) || $maxrem < 1) {
    form_set_error('datereminder_max_reminders', t('Must be a positive number'));
  }
  $minadd = $vals['datereminder_min_add'];
  if (!is_numeric($minadd) || $minadd < 1) {
    form_set_error('datereminder_min_add', t('Must be a positive number'));
  }
  $retdays = $vals['datereminder_retain_expired'];
  if (!is_numeric($retdays) || intval($retdays) < 0) {
    form_set_error('datereminder_retain_expired', t('Retention days must be non-negative numeric'));
  }
  $leads = array();
  $nv = $vals['_added'];
  if (isset($nv) && $nv != '' && $nv > 0) {
    if (!is_numeric($nv)) {
      form_set_error('_added', t('New lead time must be numeric'));
      unset($nv);
    }
    else {
      $nv *= $vals['_units'];
    }
  }
  else {
    unset($nv);
  }
  foreach ($vals as $l => $v) {
    if (drupal_substr($l, 0, 3) == '_l_') {

      // This is one of our lead times.
      unset($form_state['values'][$l]);
      if ($v) {
        $leads[] = drupal_substr($l, 3);
      }
    }
  }
  if (isset($nv)) {
    $leads[] = $nv;
  }
  rsort($leads, SORT_NUMERIC);
  $form_state['values']['datereminder_leadtime_list'] = implode(',', $leads);
  unset($form_state['values']['_added']);
  unset($form_state['values']['_units']);
}