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 >= 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;
}