function datereminder_form in Date Reminder 6
Same name and namespace in other branches
- 6.2 includes/datereminder_form.inc \datereminder_form()
- 7 datereminder.module \datereminder_form()
Build the user reminder form.
Parameters
node $node: The fully loaded node object.
array $fieldset: Boolean that indicates if the reminder form should be in a fieldset.
2 string references to 'datereminder_form'
- datereminder_menu in ./
datereminder.module - Implements of hook_menu().
- _datereminder_current_user_reminder in ./
datereminder.module - Get table of the given node's reminders.
File
- includes/
datereminder_form.inc, line 16 - Support for forms displaying or entering reminders.
Code
function datereminder_form(&$form_state, $node, $fieldset = 'f') {
module_load_include('inc', 'datereminder', 'includes/defines');
global $user;
$form = array();
if (!_datereminder_has_future_dates($node)) {
// Already past last repeat. Don't present option.
$form[] = array(
'#type' => 'item',
'#value' => t("Sorry, can't set reminders for an event in the past."),
);
return $form;
}
$form['nid'] = array(
'#type' => 'value',
'#value' => $node->nid,
);
$form['uid'] = array(
'#type' => 'value',
'#value' => $user->uid,
);
if ($fieldset == 'f') {
$form['collapse'] = array(
'#type' => 'fieldset',
'#collapsible' => TRUE,
'#collapsed' => variable_get('datereminder_fieldset_collapsed', 1),
);
$form['collapse']['#title'] = t("Get reminder for '@title'", array(
'@title' => $node->title,
));
}
else {
$form['collapse'] = array();
}
$tbl = array();
$tbl['#table_name'] = 'datereminder';
$tbl['#table_cols'] = array(
array(
'lead',
t('Lead time'),
),
);
$doemail = FALSE;
if (user_access(DATEREMINDER_OTHER_EMAIL)) {
$tbl['#table_cols'][] = array(
'email',
t('Email Addresses (leave empty to use your default)'),
);
$doemail = TRUE;
}
$reminders = _datereminder_get_node_user_reminders($node);
$rows = array();
foreach ($reminders as $r) {
$rid = $r->rid;
$rows[] = $rid;
$tbl["datereminder_lead_{$rid}"] = _datereminder_leadtime_form($r->leadtime);
if ($doemail) {
$tbl["datereminder_email_{$rid}"] = array(
'#type' => 'textfield',
'#size' => 72,
'#maxlength' => 512,
'#default_value' => $r->email,
);
}
}
// How many should we allow user to add at a time?
$maxrem = variable_get('datereminder_max_reminders', DATEREMINDER_MAX_REMINDERS);
$minadd = variable_get('datereminder_min_add', 1);
$toadd = $maxrem - count($reminders);
if ($toadd > $minadd) {
$toadd = $minadd;
}
while ($toadd > 0) {
$rows[] = "n{$toadd}";
$tbl["datereminder_lead_n{$toadd}"] = _datereminder_leadtime_form(0);
if ($doemail) {
$tbl["datereminder_email_n{$toadd}"] = array(
'#type' => 'textfield',
'#size' => 72,
'#maxlength' => 512,
);
}
$toadd -= 1;
}
$tbl['#table_rows'] = $rows;
$tbl['rids'] = array(
'#type' => 'value',
'#value' => implode(',', $rows),
);
$tbl['#theme'] = 'datereminder_table';
$form['collapse']['datereminder'] = $tbl;
$form['collapse']['send-now'] = array(
'#type' => 'checkbox',
'#title' => t('Send test email'),
'#description' => t('Check to send example email now'),
'#default_value' => FALSE,
);
$form['collapse']['submit'] = array(
'#type' => 'submit',
'#value' => t('Set reminder'),
'#submit' => array(
'_datereminder_form_submit_user',
),
);
$form['#validate'][] = '_datereminder_form_validate_user';
return $form;
}