user_admin_settings

  1. drupal
    1. 5 user.module
    2. 8
    3. 6
    4. 7
Versions
5 – 6 user_admin_settings()

Form builder; Configure user settings for this site.

See also

system_settings_form()

Related topics

Code

modules/user/user.admin.inc, line 239

<?php
function user_admin_settings() {
  // User registration settings.
  $form['registration'] = array(
    '#type' => 'fieldset',
    '#title' => t('User registration settings'),
  );
  $form['registration']['user_register'] = array(
    '#type' => 'radios',
    '#title' => t('Public registrations'),
    '#default_value' => variable_get('user_register', 1),
    '#options' => array(t('Only site administrators can create new user accounts.'), t('Visitors can create accounts and no administrator approval is required.'), t('Visitors can create accounts but administrator approval is required.')),
  );
  $form['registration']['user_email_verification'] = array(
    '#type' => 'checkbox',
    '#title' => t('Require e-mail verification when a visitor creates an account'),
    '#default_value' => variable_get('user_email_verification', TRUE),
    '#description' => t('If this box is checked, new users will be required to validate their e-mail address prior to logging into the site, and will be assigned a system-generated password. With it unchecked, users will be logged in immediately upon registering, and may select their own passwords during registration.'),
  );
  $form['registration']['user_registration_help'] = array(
    '#type' => 'textarea',
    '#title' => t('User registration guidelines'),
    '#default_value' => variable_get('user_registration_help', ''),
    '#description' => t('This text is displayed at the top of the user registration form and is useful for helping or instructing your users.'),
  );

  // User e-mail settings.
  $form['email'] = array(
    '#type' => 'fieldset', 
    '#title' => t('User e-mail settings'), 
    '#description' => t('Drupal sends emails whenever new users register on your site, and optionally, may also notify users after other account actions. Using a simple set of content templates, notification e-mails can be customized to fit the specific needs of your site.'),
  );
  // These email tokens are shared for all settings, so just define
  // the list once to help ensure they stay in sync.
  $email_token_help = t('Available variables are:') . ' !username, !site, !password, !uri, !uri_brief, !mailto, !date, !login_uri, !edit_uri, !login_url.';

  $form['email']['admin_created'] = array(
    '#type' => 'fieldset', 
    '#title' => t('Welcome, new user created by administrator'), 
    '#collapsible' => TRUE, 
    '#collapsed' => (variable_get('user_register', 1) != 0), 
    '#description' => t('Customize welcome e-mail messages sent to new member accounts created by an administrator.') . ' ' . $email_token_help,
  );
  $form['email']['admin_created']['user_mail_register_admin_created_subject'] = array(
    '#type' => 'textfield', 
    '#title' => t('Subject'), 
    '#default_value' => _user_mail_text('register_admin_created_subject'), 
    '#maxlength' => 180,
  );
  $form['email']['admin_created']['user_mail_register_admin_created_body'] = array(
    '#type' => 'textarea', 
    '#title' => t('Body'), 
    '#default_value' => _user_mail_text('register_admin_created_body'), 
    '#rows' => 15,
  );

  $form['email']['no_approval_required'] = array(
    '#type' => 'fieldset', 
    '#title' => t('Welcome, no approval required'), 
    '#collapsible' => TRUE, 
    '#collapsed' => (variable_get('user_register', 1) != 1), 
    '#description' => t('Customize welcome e-mail messages sent to new members upon registering, when no administrator approval is required.') . ' ' . $email_token_help,
  );
  $form['email']['no_approval_required']['user_mail_register_no_approval_required_subject'] = array(
    '#type' => 'textfield', 
    '#title' => t('Subject'), 
    '#default_value' => _user_mail_text('register_no_approval_required_subject'), 
    '#maxlength' => 180,
  );
  $form['email']['no_approval_required']['user_mail_register_no_approval_required_body'] = array(
    '#type' => 'textarea', 
    '#title' => t('Body'), 
    '#default_value' => _user_mail_text('register_no_approval_required_body'), 
    '#rows' => 15,
  );

  $form['email']['pending_approval'] = array(
    '#type' => 'fieldset', 
    '#title' => t('Welcome, awaiting administrator approval'), 
    '#collapsible' => TRUE, 
    '#collapsed' => (variable_get('user_register', 1) != 2), 
    '#description' => t('Customize welcome e-mail messages sent to new members upon registering, when administrative approval is required.') . ' ' . $email_token_help,
  );
  $form['email']['pending_approval']['user_mail_register_pending_approval_subject'] = array(
    '#type' => 'textfield', 
    '#title' => t('Subject'), 
    '#default_value' => _user_mail_text('register_pending_approval_subject'), 
    '#maxlength' => 180,
  );
  $form['email']['pending_approval']['user_mail_register_pending_approval_body'] = array(
    '#type' => 'textarea', 
    '#title' => t('Body'), 
    '#default_value' => _user_mail_text('register_pending_approval_body'), 
    '#rows' => 8,
  );

  $form['email']['password_reset'] = array(
    '#type' => 'fieldset', 
    '#title' => t('Password recovery email'), 
    '#collapsible' => TRUE, 
    '#collapsed' => TRUE, 
    '#description' => t('Customize e-mail messages sent to users who request a new password.') . ' ' . $email_token_help,
  );
  $form['email']['password_reset']['user_mail_password_reset_subject'] = array(
    '#type' => 'textfield', 
    '#title' => t('Subject'), 
    '#default_value' => _user_mail_text('password_reset_subject'), 
    '#maxlength' => 180,
  );
  $form['email']['password_reset']['user_mail_password_reset_body'] = array(
    '#type' => 'textarea', 
    '#title' => t('Body'), 
    '#default_value' => _user_mail_text('password_reset_body'), 
    '#rows' => 12,
  );

  $form['email']['activated'] = array(
    '#type' => 'fieldset', 
    '#title' => t('Account activation email'), 
    '#collapsible' => TRUE, 
    '#collapsed' => TRUE, 
    '#description' => t('Enable and customize e-mail messages sent to users upon account activation (when an administrator activates an account of a user who has already registered, on a site where administrative approval is required).') . ' ' . $email_token_help,
  );
  $form['email']['activated']['user_mail_status_activated_notify'] = array(
    '#type' => 'checkbox', 
    '#title' => t('Notify user when account is activated.'), 
    '#default_value' => variable_get('user_mail_status_activated_notify', TRUE),
  );
  $form['email']['activated']['user_mail_status_activated_subject'] = array(
    '#type' => 'textfield', 
    '#title' => t('Subject'), 
    '#default_value' => _user_mail_text('status_activated_subject'), 
    '#maxlength' => 180,
  );
  $form['email']['activated']['user_mail_status_activated_body'] = array(
    '#type' => 'textarea', 
    '#title' => t('Body'), 
    '#default_value' => _user_mail_text('status_activated_body'), 
    '#rows' => 15,
  );

  $form['email']['blocked'] = array(
    '#type' => 'fieldset', 
    '#title' => t('Account blocked email'), 
    '#collapsible' => TRUE, 
    '#collapsed' => TRUE, 
    '#description' => t('Enable and customize e-mail messages sent to users when their accounts are blocked.') . ' ' . $email_token_help,
  );
  $form['email']['blocked']['user_mail_status_blocked_notify'] = array(
    '#type' => 'checkbox', 
    '#title' => t('Notify user when account is blocked.'), 
    '#default_value' => variable_get('user_mail_status_blocked_notify', FALSE),
  );
  $form['email']['blocked']['user_mail_status_blocked_subject'] = array(
    '#type' => 'textfield', 
    '#title' => t('Subject'), 
    '#default_value' => _user_mail_text('status_blocked_subject'), 
    '#maxlength' => 180,
  );
  $form['email']['blocked']['user_mail_status_blocked_body'] = array(
    '#type' => 'textarea', 
    '#title' => t('Body'), 
    '#default_value' => _user_mail_text('status_blocked_body'), 
    '#rows' => 3,
  );

  $form['email']['deleted'] = array(
    '#type' => 'fieldset', 
    '#title' => t('Account deleted email'), 
    '#collapsible' => TRUE, 
    '#collapsed' => TRUE, 
    '#description' => t('Enable and customize e-mail messages sent to users when their accounts are deleted.') . ' ' . $email_token_help,
  );
  $form['email']['deleted']['user_mail_status_deleted_notify'] = array(
    '#type' => 'checkbox', 
    '#title' => t('Notify user when account is deleted.'), 
    '#default_value' => variable_get('user_mail_status_deleted_notify', FALSE),
  );
  $form['email']['deleted']['user_mail_status_deleted_subject'] = array(
    '#type' => 'textfield', 
    '#title' => t('Subject'), 
    '#default_value' => _user_mail_text('status_deleted_subject'), 
    '#maxlength' => 180,
  );
  $form['email']['deleted']['user_mail_status_deleted_body'] = array(
    '#type' => 'textarea', 
    '#title' => t('Body'), 
    '#default_value' => _user_mail_text('status_deleted_body'), 
    '#rows' => 3,
  );

  // User signatures.
  $form['signatures'] = array(
    '#type' => 'fieldset', 
    '#title' => t('Signatures'),
  );
  $form['signatures']['user_signatures'] = array(
    '#type' => 'radios', 
    '#title' => t('Signature support'), 
    '#default_value' => variable_get('user_signatures', 0), 
    '#options' => array(t('Disabled'), t('Enabled')),
  );

  // If picture support is enabled, check whether the picture directory exists:
  if (variable_get('user_pictures', 0)) {
    $picture_path = file_create_path(variable_get('user_picture_path', 'pictures'));
    file_check_directory($picture_path, 1, 'user_picture_path');
  }

  $form['pictures'] = array(
    '#type' => 'fieldset', 
    '#title' => t('Pictures'),
  );
  $picture_support = variable_get('user_pictures', 0);
  $form['pictures']['user_pictures'] = array(
    '#type' => 'radios', 
    '#title' => t('Picture support'), 
    '#default_value' => $picture_support, 
    '#options' => array(t('Disabled'), t('Enabled')), 
    '#prefix' => '<div class="user-admin-picture-radios">', 
    '#suffix' => '</div>',
  );
  drupal_add_js(drupal_get_path('module', 'user') . '/user.js');
  // If JS is enabled, and the radio is defaulting to off, hide all
  // the settings on page load via .css using the js-hide class so
  // that there's no flicker.
  $css_class = 'user-admin-picture-settings';
  if (!$picture_support) {
    $css_class .= ' js-hide';
  }
  $form['pictures']['settings'] = array(
    '#prefix' => '<div class="' . $css_class . '">', 
    '#suffix' => '</div>',
  );
  $form['pictures']['settings']['user_picture_path'] = array(
    '#type' => 'textfield', 
    '#title' => t('Picture image path'), 
    '#default_value' => variable_get('user_picture_path', 'pictures'), 
    '#size' => 30, 
    '#maxlength' => 255, 
    '#description' => t('Subdirectory in the directory %dir where pictures will be stored.', array('%dir' => file_directory_path() . '/')),
  );
  $form['pictures']['settings']['user_picture_default'] = array(
    '#type' => 'textfield', 
    '#title' => t('Default picture'), 
    '#default_value' => variable_get('user_picture_default', ''), 
    '#size' => 30, 
    '#maxlength' => 255, 
    '#description' => t('URL of picture to display for users with no custom picture selected. Leave blank for none.'),
  );
  $form['pictures']['settings']['user_picture_dimensions'] = array(
    '#type' => 'textfield', 
    '#title' => t('Picture maximum dimensions'), 
    '#default_value' => variable_get('user_picture_dimensions', '85x85'), 
    '#size' => 15, 
    '#maxlength' => 10, 
    '#description' => t('Maximum dimensions for pictures, in pixels.'),
  );
  $form['pictures']['settings']['user_picture_file_size'] = array(
    '#type' => 'textfield', 
    '#title' => t('Picture maximum file size'), 
    '#default_value' => variable_get('user_picture_file_size', '30'), 
    '#size' => 15, 
    '#maxlength' => 10, 
    '#description' => t('Maximum file size for pictures, in kB.'),
  );
  $form['pictures']['settings']['user_picture_guidelines'] = array(
    '#type' => 'textarea', 
    '#title' => t('Picture guidelines'), 
    '#default_value' => variable_get('user_picture_guidelines', ''), 
    '#description' => t("This text is displayed at the picture upload form in addition to the default guidelines. It's useful for helping or instructing your users."),
  );

  return system_settings_form($form);
}
?>