You are here

function admin_language_form_user_profile_form_alter in Administration Language 6

Implementation of hook_form_FORM_ID_alter().

File

./admin_language.module, line 186
Makes sure all admin pages are displayed in the preferred language of the administrator.

Code

function admin_language_form_user_profile_form_alter(&$form, &$form_state) {
  if (variable_get('admin_language_hide_user', 0) && !user_access('use all enabled languages')) {
    $language = variable_get('admin_language_default', 'en');

    // remove the admin language from the available options
    unset($form['locale']['language']['#options'][$language]);

    // make sure that the default value is available on the form
    $default_value = $form['locale']['language']['#default_value'];
    if (!isset($form['locale']['language']['#options'][$default_value])) {
      $options = array_keys($form['locale']['language']['#options']);
      $form['locale']['language']['#default_value'] = array_shift($options);
    }

    // if that leaves us with only one language, we replace the select element
    // with a value element and hide the language fieldset
    if (count($form['locale']['language']['#options']) == 1) {
      $options = array_keys($form['locale']['language']['#options']);
      $default = array_shift($options);
      $form['locale']['language'] = array(
        '#type' => 'value',
        '#value' => $default,
      );
      $form['locale']['#access'] = FALSE;
    }
  }
}