You are here

function datereminder_alter_node_form in Date Reminder 6.2

Same name and namespace in other branches
  1. 6 includes/node_form.inc \datereminder_alter_node_form()
  2. 7 includes/node_form.inc \datereminder_alter_node_form()

Implements hool_alter_node_form().

Add reminder information when a node with reminders is displayed.

Parameters

array &$form: The form to be altered.

array $form_state: Current form state.

string $form_id: Form id, in case there are more than one.

No return value. The form is updated.

1 call to datereminder_alter_node_form()
datereminder_form_alter in ./datereminder.module
Implements hook_form_alter().

File

includes/node_form.inc, line 21
Functions that support node type edit forms.

Code

function datereminder_alter_node_form(&$form, &$form_state, $form_id) {
  module_load_include('inc', 'datereminder', 'includes/defines');

  // Get type of node that we're editing.
  $type = $form['type']['#value'];
  $enabled = _datereminder_type_enabled($type);
  switch ($enabled) {
    case DATEREMINDER_TYPE_ON:
      $dflt = DATEREMINDER_TYPE_ON;
      break;
    case DATEREMINDER_TYPE_ALLOWED:
      $dflt = DATEREMINDER_TYPE_RETAIN;
      break;
    default:
      return;
  }

  // Node is not saved but previewed (nid is empty).
  if (isset($form['#node']->build_mode) && $form['#node']->build_mode == NODE_BUILD_PREVIEW) {
    $node = $form['#node'];
  }
  elseif (!empty($form['nid']['#value'])) {
    $node = node_load($form['nid']['#value']);
  }
  else {
    $node = NULL;
  }
  if ($node != NULL && !empty($node->datereminder_enabled)) {
    $dflt = $node->datereminder_enabled;
  }
  $form['reminder'] = array(
    '#type' => 'fieldset',
    '#title' => t('Reminder settings'),
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
    '#weight' => 40,
  );
  $radios[DATEREMINDER_TYPE_DISABLED] = t('Disable and discard existing reminders');
  $radios[DATEREMINDER_TYPE_RETAIN] = t('Disable, but keep existing reminders');
  $radios[DATEREMINDER_TYPE_ON] = t('Enable');
  $form['reminder']['datereminder_enabled'] = array(
    '#type' => 'radios',
    '#options' => $radios,
    '#default_value' => $dflt,
    '#description' => t('If enabled, users can sign up to get reminders before this event'),
  );
  $form['#submit'][] = '_datereminder_form_submit_node';
  $form['#validate'][] = '_datereminder_form_validate_node';
}