*/ /** * Administrative settings page * * @return array * a form array */ function user_delete_settings() { // 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['registration_cancellation'] = array( '#type' => 'fieldset', '#title' => t('Settings for account cancellation'), ); $form['registration_cancellation']['user_cancel_method'] = array( '#type' => 'item', '#title' => t('When cancelling a user account'), '#description' => t('Users with the %select-cancel-method or %administer-users permissions 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['registration_cancellation']['user_cancel_method'] += user_delete_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['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['registration_cancellation']['user_cancel_method'][$element]['#description']); } } $form['email_cancel_confirm'] = array( '#type' => 'fieldset', '#title' => t('Account cancellation confirmation'), '#collapsible' => TRUE, '#collapsed' => TRUE, '#description' => t('Edit the e-mail messages sent to users when they attempt to cancel their accounts.') . ' ' . $email_token_help, ); $form['email_cancel_confirm']['user_mail_cancel_confirm_subject'] = array( '#type' => 'textfield', '#title' => t('Subject'), '#default_value' => _user_delete_mail_text('cancel_confirm_subject'), '#maxlength' => 180, ); $form['email_cancel_confirm']['user_mail_cancel_confirm_body'] = array( '#type' => 'textarea', '#title' => t('Body'), '#default_value' => _user_delete_mail_text('cancel_confirm_body'), '#rows' => 3, ); $form['email_canceled'] = array( '#type' => 'fieldset', '#title' => t('Account canceled'), '#collapsible' => TRUE, '#collapsed' => TRUE, '#description' => t('Enable and edit e-mail messages sent to users when their accounts are canceled.') . ' ' . $email_token_help, ); $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( '#type' => 'textfield', '#title' => t('Subject'), '#default_value' => _user_delete_mail_text('status_canceled_subject'), '#maxlength' => 180, ); $form['email_canceled']['user_mail_status_canceled_body'] = array( '#type' => 'textarea', '#title' => t('Body'), '#default_value' => _user_delete_mail_text('status_canceled_body'), '#rows' => 3, ); return system_settings_form($form); } /** * Return subject and body strings for default _user_mail_notify function. * @param $key * @param $language * @param $variables * @return */ function _user_delete_mail_text($key, $language = NULL, $variables = array()) { $langcode = isset($language) ? $language->language : NULL; if ($admin_setting = variable_get('user_mail_'. $key, FALSE)) { // An admin setting overrides the default string. return strtr($admin_setting, $variables); } else { // No override, return default string. switch ($key) { case 'cancel_confirm_subject': return t('Account cancellation request for !username at !site', $variables, $langcode); break; case 'cancel_confirm_body': return t("!username,\n\nA request to cancel your account has been made at !site.\n\nYou may now cancel your account on !uri_brief by clicking this link or copying and pasting it into your browser:\n\n!cancelurl\n\nNOTE: The cancellation of your account is not reversible.\n\nThis link expires in one day and nothing will happen if it is not used.\n\n\n-- !site team", $variables, $langcode); case 'status_canceled_subject': return t('Account details for !username at !site (canceled)', $variables, $langcode); case 'status_canceled_body': return t("!username,\n\nYour account on !site has been canceled.\n\n\n-- !site team", $variables, $langcode); break; } } }