summaryrefslogtreecommitdiff
path: root/modules/user/user.admin.inc
diff options
context:
space:
mode:
authorAngie Byron <webchick@24967.no-reply.drupal.org>2009-05-16 20:10:50 +0000
committerAngie Byron <webchick@24967.no-reply.drupal.org>2009-05-16 20:10:50 +0000
commitb62fb8299f08dbadb3a33452f867c907aa4f29e0 (patch)
tree271d69ce730f3421cd3278264a368bbbf3df1eb4 /modules/user/user.admin.inc
parent2002b9616d90ce43860468b7a246a395723c1c44 (diff)
downloadbrdo-b62fb8299f08dbadb3a33452f867c907aa4f29e0.tar.gz
brdo-b62fb8299f08dbadb3a33452f867c907aa4f29e0.tar.bz2
#455576 by Xano and sirkitree: Revamp user settings page with vertical tabs, better organization, etc. Awesomeness.
Diffstat (limited to 'modules/user/user.admin.inc')
-rw-r--r--modules/user/user.admin.inc297
1 files changed, 160 insertions, 137 deletions
diff --git a/modules/user/user.admin.inc b/modules/user/user.admin.inc
index c0ddd1da2..de47f0445 100644
--- a/modules/user/user.admin.inc
+++ b/modules/user/user.admin.inc
@@ -244,302 +244,325 @@ function user_admin_account_validate($form, &$form_state) {
* @see system_settings_form()
*/
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.'));
+ // Settings for anonymous users.
+ $form['anonymous_settings'] = array(
+ '#type' => 'fieldset',
+ '#title' => t('Anonymous users'),
+ );
+ $form['anonymous_settings']['anonymous'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Name'),
+ '#default_value' => variable_get('anonymous', t('Anonymous')),
+ '#description' => t('The name used to indicate anonymous users.'),
+ '#required' => TRUE,
+ );
- // Account cancellation settings.
- module_load_include('inc', 'user', 'user.pages');
- $form['cancel'] = array(
+ // User registration settings.
+ $form['registration_cancellation'] = array(
'#type' => 'fieldset',
- '#title' => t('Account cancellation settings'),
+ '#title' => t('Registration and cancellation'),
+ );
+ $form['registration_cancellation']['user_register'] = array(
+ '#type' => 'radios',
+ '#title' => t('Who can register accounts?'),
+ '#default_value' => variable_get('user_register', 1),
+ '#options' => array(
+ t('Administrators only'),
+ t('Visitors'),
+ t('Visitors, but administrator approval is required'),
+ )
+ );
+ $form['registration_cancellation']['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('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. If disabled, users will be logged in immediately upon registering, and may select their own passwords during registration.')
);
- $form['cancel']['user_cancel_method'] = array(
+ module_load_include('inc', 'user', 'user.pages');
+ $form['registration_cancellation']['user_cancel_method'] = array(
'#type' => 'item',
'#title' => t('When cancelling a user account'),
- '#description' => t('This default applies to all users who want to cancel their accounts. Users with the %select-cancel-method or %administer-users <a href="@permissions-url">permissions</a> can override this default method.', array('%select-cancel-method' => t('Select method for cancelling account'), '%administer-users' => t('Administer users'), '@permissions-url' => url('admin/user/permissions'))),
+ '#description' => t('Users with the %select-cancel-method or %administer-users <a href="@permissions-url">permissions</a> can override this default method.', array('%select-cancel-method' => t('Select method for cancelling account'), '%administer-users' => t('Administer users'), '@permissions-url' => url('admin/user/permissions'))),
);
- $form['cancel']['user_cancel_method'] += user_cancel_methods();
- foreach (element_children($form['cancel']['user_cancel_method']) as $element) {
+ $form['registration_cancellation']['user_cancel_method'] += user_cancel_methods();
+ foreach (element_children($form['registration_cancellation']['user_cancel_method']) as $element) {
// Remove all account cancellation methods that have #access defined, as
// those cannot be configured as default method.
- if (isset($form['cancel']['user_cancel_method'][$element]['#access'])) {
- $form['cancel']['user_cancel_method'][$element]['#access'] = FALSE;
+ if (isset($form['registration_cancellation']['user_cancel_method'][$element]['#access'])) {
+ $form['registration_cancellation']['user_cancel_method'][$element]['#access'] = FALSE;
}
// Remove the description (only displayed on the confirmation form).
else {
- unset($form['cancel']['user_cancel_method'][$element]['#description']);
+ unset($form['registration_cancellation']['user_cancel_method'][$element]['#description']);
}
}
- // User e-mail settings.
- $form['email'] = array(
+ // Account settings.
+ $form['personalization'] = 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.'),
+ '#title' => t('Personalization'),
+ );
+ $form['personalization']['user_signatures'] = array(
+ '#type' => 'checkbox',
+ '#title' => t('Enable signatures.'),
+ '#default_value' => variable_get('user_signatures', 0),
+ );
+ // 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, FILE_CREATE_DIRECTORY, 'user_picture_path');
+ }
+ $picture_support = variable_get('user_pictures', 0);
+ $form['personalization']['user_pictures'] = array(
+ '#type' => 'checkbox',
+ '#title' => t('Enable user pictures.'),
+ '#default_value' => $picture_support,
+ );
+ drupal_add_js(drupal_get_path('module', 'user') . '/user.js');
+ // If JS is enabled, and the checkbox defaults to off, hide all the settings
+ // on page load via CSS using the js-hide class so there's no flicker.
+ $css_class = 'user-admin-picture-settings';
+ if (!$picture_support) {
+ $css_class .= ' js-hide';
+ }
+ $form['personalization']['pictures'] = array(
+ '#prefix' => '<div class="' . $css_class . '">',
+ '#suffix' => '</div>',
+ );
+ $form['personalization']['pictures']['user_picture_path'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Picture directory'),
+ '#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['personalization']['pictures']['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['personalization']['pictures']['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['personalization']['pictures']['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['personalization']['pictures']['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."),
+ );
+
+ $form['email_title'] = array(
+ '#type' => 'item',
+ '#title' => t('E-mails'),
+ );
+ $form['email'] = array(
+ '#type' => 'vertical_tabs',
);
// 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, !cancel_url.';
- $form['email']['admin_created'] = array(
+ $form['email_admin_created'] = array(
'#type' => 'fieldset',
- '#title' => t('Welcome, new user created by administrator'),
+ '#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,
+ '#group' => 'email',
);
- $form['email']['admin_created']['user_mail_register_admin_created_subject'] = array(
+ $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(
+ $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(
+ $form['email_no_approval_required'] = array(
'#type' => 'fieldset',
- '#title' => t('Welcome, no approval required'),
+ '#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
+ '#description' => t('Customize welcome e-mail messages sent to new members upon registering, when no administrator approval is required.') . ' ' . $email_token_help,
+ '#group' => 'email',
);
- $form['email']['no_approval_required']['user_mail_register_no_approval_required_subject'] = array(
+ $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(
+ $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(
+ $form['email_pending_approval'] = array(
'#type' => 'fieldset',
- '#title' => t('Welcome, awaiting administrator approval'),
+ '#title' => t('Welcome (awaiting 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,
+ '#group' => 'email',
);
- $form['email']['pending_approval']['user_mail_register_pending_approval_subject'] = array(
+ $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(
+ $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(
+ $form['email_password_reset'] = array(
'#type' => 'fieldset',
- '#title' => t('Password recovery email'),
+ '#title' => t('Password recovery'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#description' => t('Customize e-mail messages sent to users who request a new password.') . ' ' . $email_token_help,
+ '#group' => 'email',
+ '#weight' => 10,
);
- $form['email']['password_reset']['user_mail_password_reset_subject'] = array(
+ $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(
+ $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(
+ $form['email_activated'] = array(
'#type' => 'fieldset',
- '#title' => t('Account activation email'),
+ '#title' => t('Account activation'),
'#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,
+ '#group' => 'email',
);
- $form['email']['activated']['user_mail_status_activated_notify'] = array(
+ $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(
+ $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(
+ $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(
+ $form['email_blocked'] = array(
'#type' => 'fieldset',
- '#title' => t('Account blocked email'),
+ '#title' => t('Account blocked'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#description' => t('Enable and customize e-mail messages sent to users when their accounts are blocked.') . ' ' . $email_token_help,
+ '#group' => 'email',
);
- $form['email']['blocked']['user_mail_status_blocked_notify'] = array(
+ $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(
+ $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(
+ $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']['cancel_confirm'] = array(
+ $form['email_cancel_confirm'] = array(
'#type' => 'fieldset',
- '#title' => t('Account cancellation confirmation email'),
+ '#title' => t('Account cancellation confirmation'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#description' => t('Customize e-mail messages sent to users when they attempt to cancel their accounts.') . ' ' . $email_token_help,
+ '#group' => 'email',
);
- $form['email']['cancel_confirm']['user_mail_cancel_confirm_subject'] = array(
+ $form['email_cancel_confirm']['user_mail_cancel_confirm_subject'] = array(
'#type' => 'textfield',
'#title' => t('Subject'),
'#default_value' => _user_mail_text('cancel_confirm_subject'),
'#maxlength' => 180,
);
- $form['email']['cancel_confirm']['user_mail_cancel_confirm_body'] = array(
+ $form['email_cancel_confirm']['user_mail_cancel_confirm_body'] = array(
'#type' => 'textarea',
'#title' => t('Body'),
'#default_value' => _user_mail_text('cancel_confirm_body'),
'#rows' => 3,
);
- $form['email']['canceled'] = array(
+ $form['email_canceled'] = array(
'#type' => 'fieldset',
- '#title' => t('Account canceled email'),
+ '#title' => t('Account canceled'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#description' => t('Enable and customize e-mail messages sent to users when their accounts are canceled.') . ' ' . $email_token_help,
+ '#group' => 'email',
);
- $form['email']['canceled']['user_mail_status_canceled_notify'] = array(
+ $form['email_canceled']['user_mail_status_canceled_notify'] = array(
'#type' => 'checkbox',
'#title' => t('Notify user when account is canceled.'),
'#default_value' => variable_get('user_mail_status_canceled_notify', FALSE),
);
- $form['email']['canceled']['user_mail_status_canceled_subject'] = array(
+ $form['email_canceled']['user_mail_status_canceled_subject'] = array(
'#type' => 'textfield',
'#title' => t('Subject'),
'#default_value' => _user_mail_text('status_canceled_subject'),
'#maxlength' => 180,
);
- $form['email']['canceled']['user_mail_status_canceled_body'] = array(
+ $form['email_canceled']['user_mail_status_canceled_body'] = array(
'#type' => 'textarea',
'#title' => t('Body'),
'#default_value' => _user_mail_text('status_canceled_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, FILE_CREATE_DIRECTORY, '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, FALSE);
}