You are here

function datereminder_settings_form in Date Reminder 7

Same name and namespace in other branches
  1. 6.2 includes/admin.settings.inc \datereminder_settings_form()
  2. 6 includes/admin.settings.inc \datereminder_settings_form()

Build form to set datereminder adminstrative settings.

Return value

array The form for settings.

1 string reference to 'datereminder_settings_form'
_datereminder_menu in ./datereminder.admin.inc
Implements hook_menu().

File

./datereminder.admin.inc, line 113
Forms for administrative settings.

Code

function datereminder_settings_form() {
  module_load_include('inc', 'datereminder', 'includes/defines');
  $form = array();
  $form['datereminder_cron_frequency'] = array(
    '#type' => 'textfield',
    '#title' => t('Cron frequency in minutes'),
    '#size' => 5,
    '#default_value' => variable_get('datereminder_cron_frequency', DATEREMINDER_CRON_FREQUENCY),
    '#description' => t('How often does cron run, in minutes? This affects when reminders are sent. Reminders will be sent for anything due before the next expected cron run.'),
  );
  $form['datereminder_max_reminders'] = array(
    '#type' => 'textfield',
    '#title' => t('Max reminders'),
    '#size' => 3,
    '#default_value' => variable_get('datereminder_max_reminders', DATEREMINDER_MAX_REMINDERS),
    '#description' => t('Maximum number of reminders a user can request for one node'),
  );
  $form['datereminder_min_add'] = array(
    '#type' => 'textfield',
    '#title' => t('Add this many at once'),
    '#size' => 2,
    '#default_value' => variable_get('datereminder_min_add', 1),
    '#description' => t('Allow user to add this many reminders at once'),
  );
  $form['datereminder_retain_expired'] = array(
    '#type' => 'textfield',
    '#title' => t('Days to retain reminder'),
    '#description' => t('How long after last occurence to keep record of reminders'),
    '#size' => 3,
    '#default_value' => variable_get('datereminder_retain_expired', 14),
  );
  $form['datereminder_display_loc'] = array(
    '#type' => 'radios',
    '#description' => t('Where should reminders appear when viewing a node?'),
    '#default_value' => variable_get('datereminder_display_loc', DATEREMINDER_IN_NODE),
    '#title' => t('Reminder display'),
    '#options' => array(
      DATEREMINDER_IN_NODE => t('Fieldset within the node'),
      DATEREMINDER_AS_TAB => t('As a tab'),
      DATEREMINDER_AS_BLOCK => t('Fieldset in a separate %block block.', array(
        '%block' => t('Reminder request'),
      )),
    ),
  );
  $form['datereminder_fieldset_collapsed'] = array(
    '#type' => 'checkbox',
    '#description' => t('Fieldset in node should initially be collapsed'),
    '#default_value' => variable_get('datereminder_fieldset_collapsed', 1),
    '#title' => t('Field initially collapsed'),
  );
  $form['datereminder_anonymous_link'] = array(
    '#type' => 'checkbox',
    '#description' => t('If displayed in node or block, give anonymous user a prompt to log in'),
    '#default_value' => variable_get('datereminder_anonymous_link', false),
    '#title' => t('Prompt anonymous user to log in.'),
  );
  module_load_include('inc', 'datereminder', 'includes/datereminder_form');
  $leads = _datereminder_leadtime_list();
  $boxes = array();
  foreach ($leads as $l => $lbl) {
    $boxes["_l_{$l}"] = array(
      '#type' => 'checkbox',
      '#title' => check_plain($lbl),
      '#default_value' => TRUE,
    );
  }
  $form['datereminder_leadtime_list'] = array(
    '#type' => 'fieldset',
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
    '#title' => t('Specify allowed lead times'),
    '#description' => t('Check to retain'),
  );
  $form['datereminder_leadtime_list'] += $boxes;
  $nval = array(
    '#type' => 'fieldset',
    '#collapsible' => FALSE,
    '#title' => t('Add new lead time'),
    '#description' => t('Enter new lead time to add to the list'),
  );
  $nval['_added'] = array(
    '#type' => 'textfield',
    '#size' => 5,
  );
  $nval['_units'] = array(
    '#type' => 'select',
    '#description' => t('Select units'),
    '#options' => array(
      1 => t('Seconds'),
      60 => t('Minutes'),
      3600 => t('Hours'),
      86400 => t('Days'),
      604800 => t('Weeks'),
    ),
    '#default_value' => 3600,
  );
  $form['datereminder_leadtime_list'][] = $nval;
  $form = system_settings_form($form);
  $form['#submit'][] = 'datereminder_settings_form_submit';
  return $form;
}