You are here

function user_register_notify_admin_settings_form in User registration notification 7

Implements hook_admin_settings() for module settings configuration.

1 string reference to 'user_register_notify_admin_settings_form'
user_register_notify_menu in ./user_register_notify.module
Implements hook_menu().

File

./user_register_notify.admin.inc, line 11
Administrative page callbacks for the user_register_notify module.

Code

function user_register_notify_admin_settings_form() {
  $form['general'] = array(
    '#collapsed' => FALSE,
    '#collapsible' => TRUE,
    '#title' => t('Account notifications'),
    '#type' => 'fieldset',
  );
  $form['general']['user_register_notify_type'] = array(
    '#default_value' => variable_get('user_register_notify_type', 'custom'),
    '#type' => 'radios',
    '#title' => t('Send to role or custom e-mail address?'),
    '#options' => array(
      'custom' => t('Send e-mail to custom e-mail address'),
      'role' => t('Send e-mail to specific role(s)'),
      'both' => t('Send e-mail to both custom e-mail address and specific role(s)'),
    ),
  );
  $form['general']['user_register_notify_mail_to'] = array(
    '#default_value' => variable_get('user_register_notify_mail_to', ''),
    '#description' => t("Comma separated list of e-mail addresses to be used as the 'to' address for all account notifications listed below. Leave empty to use the default system e-mail address <em>(%site-email).</em>", array(
      '%site-email' => variable_get('site_mail', ini_get('sendmail_from')),
    )),
    '#title' => t('Custom e-mail addresses'),
    '#type' => 'textfield',
    '#states' => array(
      'visible' => array(
        array(
          ':input[name="user_register_notify_type"]' => array(
            'value' => 'custom',
          ),
        ),
        'or',
        array(
          ':input[name="user_register_notify_type"]' => array(
            'value' => 'both',
          ),
        ),
      ),
    ),
  );
  $user_roles = array_map('check_plain', user_roles());
  $form['general']['user_register_notify_roles'] = array(
    '#default_value' => variable_get('user_register_notify_roles', array()),
    '#description' => t('All users with these checked roles will receive a notification e-mail when selected.'),
    '#options' => $user_roles,
    '#title' => t('Send e-mail to specific role(s)'),
    '#type' => 'checkboxes',
    '#states' => array(
      'visible' => array(
        array(
          ':input[name="user_register_notify_type"]' => array(
            'value' => 'role',
          ),
        ),
        'or',
        array(
          ':input[name="user_register_notify_type"]' => array(
            'value' => 'both',
          ),
        ),
      ),
    ),
  );
  $form['user_notify_email_addresses'] = array(
    '#type' => 'fieldset',
    '#title' => t('E-mail addresses'),
    '#description' => t("You should probably not set these unless you have specific requirements. In particular, modifying the 'from' address could result in e-mail being blocked as spam, and the response could impact on your server."),
    '#collapsible' => TRUE,
    '#collapsed' => FALSE,
  );
  $form['user_notify_email_addresses']['user_register_notify_mail_from'] = array(
    '#default_value' => variable_get('user_register_notify_mail_from', ''),
    '#description' => t("The e-mail address to be used as the 'from' address for all account notifications listed below. Leave empty to use the default system e-mail address <em>(%site-email).</em>", array(
      '%site-email' => variable_get('site_mail', ini_get('sendmail_from')),
    )),
    '#title' => t('From e-mail address'),
    '#type' => 'textfield',
  );
  $form['user_notify_email_addresses']['user_register_notify_mail_replyto'] = array(
    '#default_value' => variable_get('user_register_notify_mail_replyto', ''),
    '#description' => t("The e-mail address to be used as the 'reply-to' address for all account notifications listed below. Leave empty for not using 'reply-to' e-mail header. Configure this field only, if your 'reply-to' address is not your 'from' address."),
    '#title' => t('Reply-to e-mail address'),
    '#type' => 'textfield',
  );
  $form['email_title'] = array(
    '#type' => 'item',
    '#title' => t('E-mails'),
  );
  $form['email'] = array(
    '#type' => 'vertical_tabs',
  );
  $form['email_pending_approval_admin'] = array(
    '#type' => 'fieldset',
    '#title' => t('Admin (user awaiting approval)'),
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
    '#description' => t('Edit the email notifying the site administrator that there are new members awaiting administrative approval. The list of available tokens that can be used in e-mails is provided below.') . ' ' . t('Note that this e-mail template is hidden from core account settings for unknown reasons.'),
    '#group' => 'email',
  );
  $form['email_pending_approval_admin']['user_mail_register_pending_approval_admin_subject'] = array(
    '#default_value' => variable_get('user_mail_register_pending_approval_admin_subject', t('Account details for [user:name] at [site:name] (pending admin approval)')),
    '#description' => t('Subject of user pending admin approval messages.'),
    '#required' => TRUE,
    '#title' => t('Subject'),
    '#type' => 'textfield',
  );
  $form['email_pending_approval_admin']['user_mail_register_pending_approval_admin_body'] = array(
    '#default_value' => variable_get('user_mail_register_pending_approval_admin_body', t("[user:name] has applied for an account.\n\n[user:edit-url]")),
    '#description' => t('Customize the body of the user pending admin approval notification e-mail.'),
    '#required' => TRUE,
    '#rows' => 10,
    '#title' => t('Body'),
    '#type' => 'textarea',
  );
  if (module_exists('token')) {
    $form['email_pending_approval_admin']['user_mail_register_pending_approval_admin_subject']['#element_validate'][] = 'token_element_validate';
    $form['email_pending_approval_admin']['user_mail_register_pending_approval_admin_subject']['#token_types'][] = 'user';
    $form['email_pending_approval_admin']['user_mail_register_pending_approval_admin_body']['#element_validate'][] = 'token_element_validate';
    $form['email_pending_approval_admin']['user_mail_register_pending_approval_admin_body']['#token_types'][] = 'user';
    $form['email_pending_approval_admin']['user_mail_register_pending_approval_token_tree'] = array(
      '#theme' => 'token_tree',
      '#token_types' => array(
        'user',
      ),
      '#show_restricted' => TRUE,
      '#dialog' => TRUE,
      '#weight' => 90,
    );
  }
  $form['user_register_notify_created'] = array(
    '#type' => 'fieldset',
    '#title' => t('Admin (account created)'),
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
    '#description' => t('Edit the notification e-mail message sent to specific users or roles if a new user account was created.'),
    '#group' => 'email',
  );
  $form['user_register_notify_created']['user_register_notify_created_subject'] = array(
    '#default_value' => variable_get('user_register_notify_created_subject', t('Account details for [user:name] at [site:name]')),
    '#description' => t('Subject of user created messages.'),
    '#required' => TRUE,
    '#title' => t('Subject'),
    '#type' => 'textfield',
  );
  $form['user_register_notify_created']['user_register_notify_created_body'] = array(
    '#default_value' => variable_get('user_register_notify_created_body', t("User [user:name] ([user:url]) has created account.\n\nEdit user: [user:edit-url]\n\nDelete user: [user:cancel-url]")),
    '#description' => t('Customize the body of the user created notification e-mail.'),
    '#required' => TRUE,
    '#rows' => 10,
    '#title' => t('Body'),
    '#type' => 'textarea',
  );
  if (module_exists('token')) {
    $form['user_register_notify_created']['user_register_notify_created_subject']['#element_validate'][] = 'token_element_validate';
    $form['user_register_notify_created']['user_register_notify_created_subject']['#token_types'][] = 'user';
    $form['user_register_notify_created']['user_register_notify_created_body']['#element_validate'][] = 'token_element_validate';
    $form['user_register_notify_created']['user_register_notify_created_body']['#token_types'][] = 'user';
    $form['user_register_notify_created']['user_register_notify_created_token_tree'] = array(
      '#theme' => 'token_tree',
      '#token_types' => array(
        'user',
      ),
      '#show_restricted' => TRUE,
      '#dialog' => TRUE,
      '#weight' => 90,
    );
  }
  $form['user_register_notify_updated'] = array(
    '#type' => 'fieldset',
    '#title' => t('Admin (account updated)'),
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
    '#description' => t('Edit the notification e-mail message sent to specific users or roles if a user account has been updated.'),
    '#group' => 'email',
  );
  $form['user_register_notify_updated']['user_register_notify_updated_subject'] = array(
    '#default_value' => variable_get('user_register_notify_updated_subject', t('Account details for [user:name] at [site:name]')),
    '#description' => t('Subject of user updated messages.'),
    '#required' => TRUE,
    '#title' => t('Subject'),
    '#type' => 'textfield',
  );
  $form['user_register_notify_updated']['user_register_notify_updated_body'] = array(
    '#default_value' => variable_get('user_register_notify_updated_body', t("User [user:name] ([user:url]) has updated account.\n\nEdit user: [user:edit-url]\n\nDelete user: [user:cancel-url]")),
    '#description' => t('Customize the body of the user updated notification e-mail.'),
    '#required' => TRUE,
    '#rows' => 10,
    '#title' => t('Body'),
    '#type' => 'textarea',
  );
  if (module_exists('token')) {
    $form['user_register_notify_updated']['user_register_notify_updated_subject']['#element_validate'][] = 'token_element_validate';
    $form['user_register_notify_updated']['user_register_notify_updated_subject']['#token_types'][] = 'user';
    $form['user_register_notify_updated']['user_register_notify_updated_body']['#element_validate'][] = 'token_element_validate';
    $form['user_register_notify_updated']['user_register_notify_updated_body']['#token_types'][] = 'user';
    $form['user_register_notify_updated']['user_register_notify_updated_token_tree'] = array(
      '#theme' => 'token_tree',
      '#token_types' => array(
        'user',
      ),
      '#show_restricted' => TRUE,
      '#dialog' => TRUE,
      '#weight' => 90,
    );
  }
  $form['user_register_notify_deleted'] = array(
    '#type' => 'fieldset',
    '#title' => t('Admin (account deleted)'),
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
    '#description' => t('Edit the notification e-mail message sent to specific users or roles if a user account has been deleted.'),
    '#group' => 'email',
  );
  $form['user_register_notify_deleted']['user_register_notify_deleted_subject'] = array(
    '#default_value' => variable_get('user_register_notify_deleted_subject', t('Account details for [user:name] at [site:name]')),
    '#description' => t('Subject of user deleted messages.'),
    '#required' => TRUE,
    '#title' => t('Subject'),
    '#type' => 'textfield',
  );
  $form['user_register_notify_deleted']['user_register_notify_deleted_body'] = array(
    '#default_value' => variable_get('user_register_notify_deleted_body', t("User [user:name] ([user:url]) has deleted account.")),
    '#description' => t('Customize the body of the user deleted notification e-mail.'),
    '#required' => TRUE,
    '#rows' => 10,
    '#title' => t('Body'),
    '#type' => 'textarea',
  );
  if (module_exists('token')) {
    $form['user_register_notify_deleted']['user_register_notify_deleted_subject']['#element_validate'][] = 'token_element_validate';
    $form['user_register_notify_deleted']['user_register_notify_deleted_subject']['#token_types'][] = 'user';
    $form['user_register_notify_deleted']['user_register_notify_deleted_body']['#element_validate'][] = 'token_element_validate';
    $form['user_register_notify_deleted']['user_register_notify_deleted_body']['#token_types'][] = 'user';
    $form['user_register_notify_deleted']['user_register_notify_deleted_token_tree'] = array(
      '#theme' => 'token_tree',
      '#token_types' => array(
        'user',
      ),
      '#show_restricted' => TRUE,
      '#dialog' => TRUE,
      '#weight' => 90,
    );
  }
  $form['advanced'] = array(
    '#collapsed' => FALSE,
    '#collapsible' => TRUE,
    '#title' => t('Advanced settings'),
    '#type' => 'fieldset',
  );
  $form['advanced']['user_register_notify_alert'] = array(
    '#default_value' => variable_get('user_register_notify_alert', array(
      'create' => 'create',
    )),
    '#description' => t('When to send an e-mail.'),
    '#options' => array(
      'create' => t('Send e-mail upon account created.'),
      'update' => t('Send e-mail upon account updated.'),
      'delete' => t('Send e-mail upon account deleted.'),
    ),
    '#required' => FALSE,
    '#title' => t('Actions'),
    '#type' => 'checkboxes',
  );
  $user_register_notify_mail_messageid_default = drupal_map_assoc(array(
    'user_register_notify_admin_create',
    'user_register_notify_admin_delete',
    'user_register_notify_admin_update',
  ));
  $form['advanced']['user_register_notify_mail_messageid'] = array(
    '#default_value' => variable_get('user_register_notify_mail_messageid', $user_register_notify_mail_messageid_default),
    '#description' => t("The messages where 'from' and 'reply-to' settings should be used."),
    '#options' => array(
      'user_register_notify_admin_create' => t('Admin (account created)'),
      'user_register_notify_admin_update' => t('Admin (account updated)'),
      'user_register_notify_admin_delete' => t('Admin (account deleted)'),
      // Core - User module
      'user_register_admin_created' => t('Welcome (new user created by administrator)'),
      'user_register_no_approval_required' => t('Welcome (no approval required)'),
      // If a user registered requiring admin approval, notify the admin, too.
      'user_register_pending_approval_admin' => t('Admin (user awaiting approval)'),
      'user_register_pending_approval' => t('Welcome (awaiting approval)'),
      'user_status_activated' => t('Account activation'),
      'user_status_blocked' => t('Account blocked'),
      'user_cancel_confirm' => t('Account cancellation confirmation'),
      'user_status_canceled' => t('Account canceled'),
      'user_password_reset' => t('Password recovery'),
    ),
    '#title' => t('Messages affected'),
    '#type' => 'checkboxes',
  );
  return system_settings_form($form);
}