function _datereminder_form_summary in Date Reminder 7
Build a form with a list of reminders.
Parameters
array $formname: The name of the form
array $form_state: Current state of the form
object $arg: Can be node or user object, depending on $content
string $content: Determines content of the list. Allowed values: 'all_node' -- Show all reminders for this node 'all_user' -- Show all reminders for a given user 'all' -- Show all reminders
string $fieldset: String that indicates if the reminder form should be in a fieldset.
1 call to _datereminder_form_summary()
- datereminder_form_summary in ./
datereminder.module - Build a form with a list of reminders.
File
- includes/
datereminder_form.inc, line 227 - Support for forms displaying or entering reminders.
Code
function _datereminder_form_summary($formname, &$form_state, $arg, $content, $fieldset) {
global $user;
module_load_include('inc', 'datereminder', 'includes/date');
module_load_include('inc', 'datereminder', 'includes/defines');
module_load_include('inc', 'datereminder', DATEREMINDER_DB);
$form = array();
$douser = FALSE;
$donode = FALSE;
$allow_del = user_access(DATEREMINDER_ADMINISTER_REMINDERS);
$sel = array();
switch ($content) {
case 'all_node':
$douser = TRUE;
$sel['nid'] = $arg->nid;
break;
case 'all':
$douser = $donode = TRUE;
break;
case 'all_user':
$donode = TRUE;
$sel['uid'] = $arg->uid;
if ($user->uid == $arg->uid) {
$allow_del = TRUE;
}
break;
default:
return $form;
}
$all = _datereminder_load_reminders($sel, NULL, 'next_due');
$reminders = array();
foreach (array_values($all) as $rem) {
$reminders[$rem->rid] = '';
if ($douser) {
$u = $rem->name;
if (user_access('access user profiles')) {
$u = l($u, 'user/' . $rem->uid . '/datereminder');
}
$form['user'][$rem->rid] = _datereminder_form_text_item($u);
}
if ($rem->email != '' && ($allow_del || $rem->uid == $user->uid)) {
$emails[$rem->rid] = _datereminder_form_text_item(str_replace(',', '<br/>', check_plain($rem->email)));
}
if ($donode) {
$form['title'][$rem->rid] = _datereminder_form_text_item(l($rem->title, 'node/' . $rem->nid));
}
// Get reminder leadtimes
// Note: Can simplify this now that there's one reminder
// per entry, not multiple.
$times = drupal_map_assoc(array(
$rem->leadtime,
), 'format_interval');
$stimes = implode('</br>', array_values($times));
$form['leads'][$rem->rid] = _datereminder_form_text_item($stimes);
// Get time of next reminder in local tz.
$dobj = _datereminder_internal_date_to_datetime($rem->next_due);
$tz = timezone_open(drupal_get_user_timezone());
$dobj
->setTimeZone($tz);
if ($rem->expired) {
$n = _datereminder_form_text_item(t('Expired'));
}
else {
$shortformat = variable_get('date_format_short', 'm/d/Y - H:i');
$n = _datereminder_form_text_item($dobj
->format($shortformat));
}
$form['next'][$rem->rid] = $n;
}
if (isset($emails)) {
$form['email'] = $emails;
}
if ($allow_del) {
$form['reminders'] = array(
'#type' => 'checkboxes',
'#options' => $reminders,
);
if (!empty($reminders)) {
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Delete selected reminders'),
'#submit' => array(
'_datereminder_admin_delete_set',
),
);
}
}
$form['#theme'] = 'datereminder_manage_reminders';
form_load_include($form_state, 'inc', 'datereminder', 'includes/datereminder_form');
return $form;
}