You are here

function _datereminder_form_validate_user in Date Reminder 7

Same name and namespace in other branches
  1. 6.2 datereminder.module \_datereminder_form_validate_user()
  2. 6 datereminder.module \_datereminder_form_validate_user()

Callback on validate from datereminder_form.

Did the user put reasonable values in the form?

1 string reference to '_datereminder_form_validate_user'
_datereminder_form in includes/datereminder_form.inc
Build the user reminder form.

File

./datereminder.module, line 388
Support for reminders for nodes with dates.

Code

function _datereminder_form_validate_user($form, &$form_state) {
  global $user;
  module_load_include('inc', 'datereminder', 'includes/defines');
  $ok = TRUE;
  $v = $form_state['values'];
  $nid = $v['nid'];
  $node = node_load($nid);
  if (empty($node) || $user->uid == 0 || !user_access(DATEREMINDER_REQUEST_REMINDER)) {
    form_set_error(NULL, t('Permission error'), 'error');
    return FALSE;
  }

  // Any reason not to do this?
  $form_state['datereminder_node'] = $node;

  // Get existing reminders.
  $r = _datereminder_get_node_user_reminders($node);
  $other_email = user_access(DATEREMINDER_OTHER_EMAIL);
  $rows = $v['rids'];
  if (!isset($rows) or $rows == '') {
    form_set_error(NULL, t('Corrupted form'));
    return FALSE;
  }
  $rows = explode(',', $rows);
  if (count($rows) > variable_get('datereminder_max_reminders', DATEREMINDER_MAX_REMINDERS)) {
    form_set_error(NULL, t('Permission error'), 'error');
    return;
  }
  foreach ($rows as $rid) {
    if (substr($rid, 0, 1) != 'n') {
      if (!isset($r[$rid])) {
        form_set_error(NULL, t('Permission error'), 'error');
        return;
      }
    }
    if ($other_email && $ok) {
      $formid = "datereminder_email_{$rid}";
      $e = $v[$formid];
      if ($e) {
        $inemails = explode(',', $e);
        $outemails = array();
        foreach ($inemails as $email) {
          $email = trim($email);
          if ($email) {
            if (valid_email_address($email)) {
              $outemails[] = $email;
            }
            else {
              form_set_error($formid, t("'@email' is a bad address", array(
                '@email' => $email,
              )));
              $ok = FALSE;
              break;
            }
          }
        }
        if ($ok) {
          $form_state['values'][$formid] = implode(',', $outemails);
        }
      }
    }
  }
  return $ok;
}