You are here

function _datereminder_form_validate_user in Date Reminder 6.2

Same name and namespace in other branches
  1. 6 datereminder.module \_datereminder_form_validate_user()
  2. 7 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 352
Support for reminders for nodes with dates.

Code

function _datereminder_form_validate_user($form, &$form_state) {
  module_load_include('inc', 'datereminder', 'includes/defines');
  global $user;
  $ok = TRUE;
  $v = $form_state['values'];
  $nid = $v['nid'];
  $node = node_load($nid);
  if (empty($node) || !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'];
  $added = 0;
  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) {
      $e = $v["datereminder_email_{$rid}"];
      if ($e) {
        foreach (explode(',', $e) as $email) {
          if ($email && !valid_email_address($email)) {
            form_set_error("datereminder_email_{$rid}", t('This email address appears to be invalid'), 'error');
            $ok = FALSE;
          }
        }
      }
    }
  }
  return $ok;
}