function datereminder_form_summary in Date Reminder 6
Same name and namespace in other branches
- 6.2 includes/datereminder_form.inc \datereminder_form_summary()
- 7 datereminder.module \datereminder_form_summary()
Build a form with a list of reminders.
@todo This really ought to be combined with datereminder_form().
Parameters
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 string reference to 'datereminder_form_summary'
- datereminder_menu in ./
datereminder.module - Implements of hook_menu().
File
- includes/
datereminder_form.inc, line 203 - Support for forms displaying or entering reminders.
Code
function datereminder_form_summary(&$form_state, $arg, $content = 'all_node', $fieldset = 'f') {
global $user;
$form = array();
$douser = FALSE;
$donode = FALSE;
$allow_del = user_access(DATEREMINDER_ADMINISTER_REMINDERS);
$sel = array();
switch ($content) {
case 'all_node':
$douser = TRUE;
$ttl = t("All reminders for '@title'", array(
'@title' => check_plain($arg->title),
));
$sel['nid'] = $arg->nid;
break;
case 'all':
$douser = $donode = TRUE;
$ttl = t('All reminders');
break;
case 'all_user':
$donode = TRUE;
$ttl = t('All of your reminders');
$sel['uid'] = $arg->uid;
if ($user->uid == $arg->uid) {
$allow_del = TRUE;
}
break;
default:
return $form;
}
$all = _datereminder_load_reminders($sel, NULL, 'next');
$reminders = array();
foreach ($all as $rid => $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] = array(
'#value' => $u,
);
}
if ($rem->email != '' && ($allow_del || $rem->uid == $user->uid)) {
$emails[$rem->rid] = array(
'#value' => str_replace(',', '</br>', check_plain($rem->email)),
);
}
if ($donode) {
$form['title'][$rem->rid] = array(
'#value' => l($rem->title, 'node/' . $rem->nid),
);
}
// Get reminder leadtimes
// Note: Can simplify this now that there's one reminder
// per entry, not multiple.
$times = $menu_values = drupal_map_assoc(array(
$rem->leadtime,
), 'format_interval');
$stimes = implode('</br>', array_values($times));
$form['leads'][$rem->rid] = array(
'#value' => $stimes,
);
// Get time of next reminder in local tz.
$dobj = date_create($rem->next, timezone_open('UTC'));
date_timezone_set($dobj, timezone_open(date_default_timezone_name(FALSE)));
if ($rem->expired) {
$n = array(
'#value' => t('Expired'),
);
}
else {
$n = array(
'#value' => date_format_date($dobj, 'short'),
);
}
$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';
return $form;
}