You are here

function _node_registration_type_settings_form in Node registration 7

All registration settings for registration types and nodes.

2 calls to _node_registration_type_settings_form()
node_registration_registrations_settings_form in includes/node_registration.forms.inc
Return a form for a node's registration settings.
node_registration_type_settings in includes/node_registration.forms.inc
Form for registration type settings.

File

includes/node_registration.forms.inc, line 172
New registration forms. Public and admin.

Code

function _node_registration_type_settings_form($type, $settings, $node = NULL) {
  $strtotime_help = t('Use minutes, hours, days and weeks to provide a period. E.g.: <code>1 day 4 hours</code> or <code>50 hours</code>.');
  $relative_utc = $node ? $node->registration
    ->site_utc() : REQUEST_TIME;
  $form['register_cancel'] = array(
    '#type' => 'fieldset',
    '#title' => t('Register & Cancel'),
    '#collapsible' => TRUE,
  );
  $form['register_cancel']['allow_registration_until'] = array(
    '#type' => 'textfield',
    '#title' => t('Allow registrations until'),
    '#description' => $strtotime_help . ' ' . _node_registration_strtotime_debug($settings->allow_registration_until, $relative_utc),
    '#default_value' => $settings->allow_registration_until,
    '#field_suffix' => ' ' . t('before'),
    '#element_validate' => array(
      '_node_registration_value_is_strtotime',
    ),
    '#weight' => -9,
  );
  $form['register_cancel']['registration_success_message'] = array(
    '#type' => 'textfield',
    '#title' => t('Registration success message'),
    '#default_value' => $settings->registration_success_message,
    '#description' => t('You can use HTML. URL for the new registration: @registration_url.') . _node_registration_translation_description_for($settings->registration_success_message, ''),
    '#nr_locale_kick' => array(
      'context' => FALSE,
    ),
  );
  $form['register_cancel']['allow_cancellation_until'] = array(
    '#type' => 'textfield',
    '#title' => t('Allow cancellations until'),
    '#description' => $strtotime_help . ' ' . _node_registration_strtotime_debug($settings->allow_cancellation_until, $relative_utc),
    '#default_value' => $settings->allow_cancellation_until,
    '#field_suffix' => ' ' . t('before'),
    '#element_validate' => array(
      '_node_registration_value_is_strtotime',
    ),
  );
  $form['numbers'] = array(
    '#type' => 'fieldset',
    '#title' => t('Numbers'),
    '#collapsible' => TRUE,
  );
  $form['numbers']['capacity'] = array(
    '#type' => 'textfield',
    '#title' => t('Capacity'),
    '#size' => 6,
    '#description' => t('This many <strong>slots</strong> can be filled. One registration &gt;= 1 slot.'),
    '#default_value' => $settings->capacity,
    '#element_validate' => array(
      'value_is_integer',
    ),
    '#min' => 0,
    '#required' => TRUE,
  );
  if ($settings->capacity_field) {
    unset($form['numbers']['capacity']);
    $form['numbers']['capacity'] = array(
      '#type' => 'item',
      '#title' => t('Capacity'),
      '#markup' => is_callable(array(
        $settings,
        'capacity',
      )) ? $settings
        ->capacity() : '-',
      '#description' => t('This field is not editable and <strong>not used</strong>, because %field has been set as Capacity source field.', array(
        '%field' => $settings->capacity_field,
      )),
    );
  }
  $form['numbers']['capacity']['#description'] .= ' ' . t("Empty or <code>0</code> means capacity is unlimited, waiting list will never be used.");
  $form['numbers']['allow_exceeding_capacity'] = array(
    '#type' => 'checkbox',
    '#title' => t('Allow exceeding capacity (waiting list)'),
    '#description' => t('Allows people to register even after capacity has been reached.'),
    '#default_value' => $settings->allow_exceeding_capacity,
  );
  $form['numbers']['max_slots_per_registration_authenticated'] = array(
    '#type' => 'textfield',
    '#title' => t('Max slots per authenticated registration'),
    '#size' => 6,
    '#description' => t('This many <strong>slots</strong> can be consumed by 1 registration by an <strong>authenticated</strong> user. Set to 0 to disallow authenticated users.'),
    '#default_value' => $settings->max_slots_per_registration_authenticated,
    '#element_validate' => array(
      'value_is_integer',
    ),
    '#min' => 0,
  );
  $form['numbers']['max_slots_per_registration_anonymous'] = array(
    '#type' => 'textfield',
    '#title' => t('Max slots per anonymous registration'),
    '#size' => 6,
    '#description' => t('This many <strong>slots</strong> can be consumed by 1 registration by an <strong>anonymous</strong> user. Set to 0 to disallow anonymous users.'),
    '#default_value' => $settings->max_slots_per_registration_anonymous,
    '#element_validate' => array(
      'value_is_integer',
    ),
    '#min' => 0,
  );
  $form['numbers']['allow_email_change'] = array(
    '#type' => 'checkbox',
    '#title' => t('Allow e-mail address change?'),
    '#description' => t('Allows signed in users to change their e-mail address via the registration interface/form.'),
    '#default_value' => $settings->allow_email_change,
  );
  $form['numbers']['require_email_verification'] = array(
    '#type' => 'checkbox',
    '#title' => t('Require e-mail address verification?'),
    '#description' => t('Forces a) authenticated users to verify their changed e-mail address OR b) anonymous users to verify their e-mail address.'),
    '#default_value' => FALSE && $settings->require_email_verification,
    '#disabled' => TRUE,
  );
  $accepts_tokens = ' ' . t('Accepts tokens.');
  $any_mail = $settings->send_mail_to_registree + $settings->send_mail_to_admin + $settings->send_reminder_mail_to_registrees + $settings->send_cancel_mail_to_registree + $settings->send_cancel_mail_to_admin + $settings->send_unwaitinglist_mail_to_registree;
  $form['email'] = array(
    '#type' => 'fieldset',
    '#title' => t('E-mail'),
    '#collapsible' => TRUE,
    '#collapsed' => !$any_mail,
  );
  if (module_exists('locale')) {
    $menu_item = menu_get_item('admin/config/regional/translate/translate');
    if (!empty($menu_item['access'])) {
      $form['email']['#description'] = t('Mail texts are translatable via the <a href="!url">interface translation UI</a>. Saving this form adds relevant source strings.', array(
        '!url' => url('admin/config/regional/translate/translate'),
      ));
    }
  }
  $form['email']['sender_name'] = array(
    '#type' => 'textfield',
    '#title' => t('Sender name'),
    '#default_value' => $settings->sender_name,
    '#description' => t('Defaults to the site name: %site_name.', array(
      '%site_name' => _node_registration_default_from_name(),
    )),
  );
  $form['email']['sender_mail'] = array(
    '#type' => 'textfield',
    '#title' => t('Sender e-mail address'),
    '#default_value' => $settings->sender_mail,
    '#element_validate' => array(
      'value_is_email_or_token',
    ),
    '#description' => t('Defaults to the site e-mail: %site_email.', array(
      '%site_email' => variable_get('site_mail'),
    )) . $accepts_tokens,
  );
  if (module_exists('mimemail')) {
    $form['email']['mail_system'] = array(
      '#type' => 'radios',
      '#title' => t('Mail system'),
      '#default_value' => $settings->mail_system,
      '#required' => TRUE,
      '#options' => array(
        0 => t('Default Drupal mail system'),
        1 => t('MimeMail with attachments support'),
      ),
      '#description' => t('Defaults to the default Drupal mail system, if MimeMail is enabled it allows for sending attachments with mails (mimemail module is necessary)'),
    );
  }
  $form['email']['mail_to_registree'] = array(
    '#type' => 'fieldset',
    '#title' => t('Register e-mail to registree'),
    '#collapsible' => TRUE,
    '#collapsed' => !$settings->send_mail_to_registree,
  );
  $form['email']['mail_to_registree']['send_mail_to_registree'] = array(
    '#type' => 'checkbox',
    '#title' => t('Send e-mail to registree'),
    '#default_value' => $settings->send_mail_to_registree,
  );
  $form['email']['mail_to_registree']['mail_to_registree_bcc'] = array(
    '#type' => 'textfield',
    '#title' => t('Send BCC to'),
    '#default_value' => $settings->mail_to_registree_bcc,
    '#element_validate' => array(
      'value_is_email_or_token',
    ),
    '#max' => 20,
    '#description' => t('A (comma separated) list of e-mail addresses to send this notification to.') . $accepts_tokens,
  );
  $form['email']['mail_to_registree']['mail_to_registree_subject'] = array(
    '#type' => 'textfield',
    '#title' => t('Subject'),
    '#default_value' => $settings->mail_to_registree_subject,
    '#description' => trim(_node_registration_translation_description_for($settings->mail_to_registree_subject)),
    '#nr_locale_kick' => TRUE,
  );
  $form['email']['mail_to_registree']['mail_to_registree_body'] = array(
    '#type' => 'textarea',
    '#title' => t('Body'),
    '#default_value' => $settings->mail_to_registree_body,
    '#description' => trim(_node_registration_translation_description_for($settings->mail_to_registree_body)),
    '#nr_locale_kick' => TRUE,
  );
  $form['email']['mail_to_registree']['mail_for_waiting_list_registree'] = array(
    '#type' => 'fieldset',
    '#title' => t('Change e-mail for waiting list registrees'),
    '#collapsible' => TRUE,
    '#collapsed' => !$settings->change_mail_for_waiting_list_registree,
  );
  $form['email']['mail_to_registree']['mail_for_waiting_list_registree']['change_mail_for_waiting_list_registree'] = array(
    '#type' => 'checkbox',
    '#title' => t('Yes, different e-mail for waiting list registrees'),
    '#default_value' => $settings->change_mail_for_waiting_list_registree,
  );
  $form['email']['mail_to_registree']['mail_for_waiting_list_registree']['mail_for_waiting_list_registree_subject'] = array(
    '#type' => 'textfield',
    '#title' => t('Subject'),
    '#default_value' => $settings->mail_for_waiting_list_registree_subject,
    '#description' => trim(_node_registration_translation_description_for($settings->mail_for_waiting_list_registree_subject)),
    '#nr_locale_kick' => TRUE,
  );
  $form['email']['mail_to_registree']['mail_for_waiting_list_registree']['mail_for_waiting_list_registree_body'] = array(
    '#type' => 'textarea',
    '#title' => t('Body'),
    '#default_value' => $settings->mail_for_waiting_list_registree_body,
    '#description' => trim(_node_registration_translation_description_for($settings->mail_for_waiting_list_registree_body)),
    '#nr_locale_kick' => TRUE,
  );
  $form['email']['mail_to_admin'] = array(
    '#type' => 'fieldset',
    '#title' => t('Register e-mail to admin'),
    '#collapsible' => TRUE,
    '#collapsed' => !$settings->send_mail_to_admin,
  );
  $form['email']['mail_to_admin']['send_mail_to_admin'] = array(
    '#type' => 'checkbox',
    '#title' => t('Send e-mail to admin'),
    '#default_value' => $settings->send_mail_to_admin,
  );
  $form['email']['mail_to_admin']['mail_to_admin_recipients'] = array(
    '#type' => 'textfield',
    '#title' => t('Recipients'),
    '#default_value' => $settings->mail_to_admin_recipients,
    '#element_validate' => array(
      'value_is_email_or_token',
    ),
    '#max' => 20,
    '#description' => t('A (comma separated) list of e-mail addresses to send this notification to.') . $accepts_tokens,
  );
  $form['email']['mail_to_admin']['mail_to_admin_subject'] = array(
    '#type' => 'textfield',
    '#title' => t('Subject'),
    '#default_value' => $settings->mail_to_admin_subject,
    '#description' => trim(_node_registration_translation_description_for($settings->mail_to_admin_subject)),
    '#nr_locale_kick' => TRUE,
  );
  $form['email']['mail_to_admin']['mail_to_admin_body'] = array(
    '#type' => 'textarea',
    '#title' => t('Body'),
    '#default_value' => $settings->mail_to_admin_body,
    '#description' => trim(_node_registration_translation_description_for($settings->mail_to_admin_body)),
    '#nr_locale_kick' => TRUE,
  );
  $form['email']['reminder_mail_to_registrees'] = array(
    '#type' => 'fieldset',
    '#title' => t('Reminder e-mail to registrees'),
    '#collapsible' => TRUE,
    '#collapsed' => !$settings->send_reminder_mail_to_registrees,
  );
  $form['email']['reminder_mail_to_registrees']['send_reminder_mail_to_registrees'] = array(
    '#type' => 'checkbox',
    '#title' => t('Send e-mail to registree'),
    '#default_value' => $settings->send_reminder_mail_to_registrees,
  );
  $form['email']['reminder_mail_to_registrees']['send_reminders_before'] = array(
    '#type' => 'textfield',
    '#title' => t('Send reminder'),
    '#description' => $strtotime_help . ' ' . _node_registration_strtotime_debug($settings->send_reminders_before, $relative_utc),
    '#default_value' => $settings->send_reminders_before,
    '#field_suffix' => ' ' . t('before'),
    '#element_validate' => array(
      '_node_registration_value_is_strtotime',
    ),
  );
  $form['email']['reminder_mail_to_registrees']['reminder_mail_to_registrees_subject'] = array(
    '#type' => 'textfield',
    '#title' => t('Subject'),
    '#default_value' => $settings->reminder_mail_to_registrees_subject,
    '#description' => trim(_node_registration_translation_description_for($settings->reminder_mail_to_registrees_subject)),
    '#nr_locale_kick' => TRUE,
  );
  $form['email']['reminder_mail_to_registrees']['reminder_mail_to_registrees_body'] = array(
    '#type' => 'textarea',
    '#title' => t('Body'),
    '#default_value' => $settings->reminder_mail_to_registrees_body,
    '#description' => trim(_node_registration_translation_description_for($settings->reminder_mail_to_registrees_body)),
    '#nr_locale_kick' => TRUE,
  );
  $form['email']['cancel_mail_to_registree'] = array(
    '#type' => 'fieldset',
    '#title' => t('Cancel e-mail to registree'),
    '#collapsible' => TRUE,
    '#collapsed' => !$settings->send_cancel_mail_to_registree,
  );
  $form['email']['cancel_mail_to_registree']['send_cancel_mail_to_registree'] = array(
    '#type' => 'checkbox',
    '#title' => t('Send e-mail to registree'),
    '#default_value' => $settings->send_cancel_mail_to_registree,
  );
  $form['email']['cancel_mail_to_registree']['cancel_mail_to_registree_bcc'] = array(
    '#type' => 'textfield',
    '#title' => t('Send BCC to'),
    '#default_value' => $settings->cancel_mail_to_registree_bcc,
    '#element_validate' => array(
      'value_is_email_or_token',
    ),
    '#max' => 20,
    '#description' => t('A (comma separated) list of e-mail addresses to send this notification to.') . $accepts_tokens,
  );
  $form['email']['cancel_mail_to_registree']['cancel_mail_to_registree_subject'] = array(
    '#type' => 'textfield',
    '#title' => t('Subject'),
    '#default_value' => $settings->cancel_mail_to_registree_subject,
    '#description' => trim(_node_registration_translation_description_for($settings->cancel_mail_to_registree_subject)),
    '#nr_locale_kick' => TRUE,
  );
  $form['email']['cancel_mail_to_registree']['cancel_mail_to_registree_body'] = array(
    '#type' => 'textarea',
    '#title' => t('Body'),
    '#default_value' => $settings->cancel_mail_to_registree_body,
    '#description' => trim(_node_registration_translation_description_for($settings->cancel_mail_to_registree_body)),
    '#nr_locale_kick' => TRUE,
  );
  $form['email']['cancel_mail_to_admin'] = array(
    '#type' => 'fieldset',
    '#title' => t('Cancel e-mail to admin'),
    '#collapsible' => TRUE,
    '#collapsed' => !$settings->send_cancel_mail_to_admin,
  );
  $form['email']['cancel_mail_to_admin']['send_cancel_mail_to_admin'] = array(
    '#type' => 'checkbox',
    '#title' => t('Send e-mail to admin'),
    '#default_value' => $settings->send_cancel_mail_to_admin,
  );
  $form['email']['cancel_mail_to_admin']['cancel_mail_to_admin_recipients'] = array(
    '#type' => 'textfield',
    '#title' => t('Recipients'),
    '#default_value' => $settings->cancel_mail_to_admin_recipients,
    '#element_validate' => array(
      'value_is_email_or_token',
    ),
    '#max' => 20,
    '#description' => t('A (comma separated) list of e-mail addresses to send this notification to.') . $accepts_tokens,
  );
  $form['email']['cancel_mail_to_admin']['cancel_mail_to_admin_subject'] = array(
    '#type' => 'textfield',
    '#title' => t('Subject'),
    '#default_value' => $settings->cancel_mail_to_admin_subject,
    '#description' => trim(_node_registration_translation_description_for($settings->cancel_mail_to_admin_subject)),
    '#nr_locale_kick' => TRUE,
  );
  $form['email']['cancel_mail_to_admin']['cancel_mail_to_admin_body'] = array(
    '#type' => 'textarea',
    '#title' => t('Body'),
    '#default_value' => $settings->cancel_mail_to_admin_body,
    '#description' => trim(_node_registration_translation_description_for($settings->cancel_mail_to_admin_body)),
    '#nr_locale_kick' => TRUE,
  );
  $form['email']['unwaitinglist_mail_to_registree'] = array(
    '#type' => 'fieldset',
    '#title' => t('Unwaitinglist e-mail to registree'),
    '#collapsible' => TRUE,
    '#collapsed' => !$settings->send_unwaitinglist_mail_to_registree,
  );
  $form['email']['unwaitinglist_mail_to_registree']['send_unwaitinglist_mail_to_registree'] = array(
    '#type' => 'checkbox',
    '#title' => t('Send e-mail to registree'),
    '#default_value' => $settings->send_unwaitinglist_mail_to_registree,
  );
  $form['email']['unwaitinglist_mail_to_registree']['unwaitinglist_mail_to_registree_subject'] = array(
    '#type' => 'textfield',
    '#title' => t('Subject'),
    '#default_value' => $settings->unwaitinglist_mail_to_registree_subject,
    '#description' => trim(_node_registration_translation_description_for($settings->unwaitinglist_mail_to_registree_subject)),
    '#nr_locale_kick' => TRUE,
  );
  $form['email']['unwaitinglist_mail_to_registree']['unwaitinglist_mail_to_registree_body'] = array(
    '#type' => 'textarea',
    '#title' => t('Body'),
    '#default_value' => $settings->unwaitinglist_mail_to_registree_body,
    '#description' => trim(_node_registration_translation_description_for($settings->unwaitinglist_mail_to_registree_body)),
    '#nr_locale_kick' => TRUE,
  );
  $form['show_messages'] = array(
    '#type' => 'fieldset',
    '#title' => t('Block error messages'),
    '#description' => t("Show a themeable warning message for which scenario's?"),
    '#collapsible' => TRUE,
  );
  $form['show_messages']['show_message_access'] = array(
    '#type' => 'checkbox',
    '#title' => t('User has insufficient access'),
    '#default_value' => $settings->show_message_access,
  );
  $form['show_messages']['show_message_date'] = array(
    '#type' => 'checkbox',
    '#title' => t('Invalid date'),
    '#default_value' => $settings->show_message_date,
  );
  $form['show_messages']['show_message_capacity'] = array(
    '#type' => 'checkbox',
    '#title' => t('No more room'),
    '#default_value' => $settings->show_message_capacity,
  );
  $form['show_messages']['show_message_registered'] = array(
    '#type' => 'checkbox',
    '#title' => t('User already registered'),
    '#default_value' => $settings->show_message_registered,
  );
  _node_registration_add_token_tree($form);
  return $form;
}