function _datereminder_form_validate_user in Date Reminder 7
Same name and namespace in other branches
- 6.2 datereminder.module \_datereminder_form_validate_user()
- 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;
}