function allowed_languages_form_user_form_alter in Allowed Languages 8
Same name and namespace in other branches
- 2.x allowed_languages.module \allowed_languages_form_user_form_alter()
Add the allowed languages checkboxes to the user form.
Parameters
array $form: The user form.
\Drupal\Core\Form\FormStateInterface $form_state: The user form state.
File
- ./
allowed_languages.module, line 123 - Contains allowed_languages.module.
Code
function allowed_languages_form_user_form_alter(array &$form, FormStateInterface $form_state) {
// If user is not allowed to administer settings, return at once.
if (!\Drupal::currentUser()
->hasPermission('administer allowed languages')) {
return;
}
/** @var \Drupal\user\UserInterface $user */
$user = $form_state
->getFormObject()
->getEntity();
$languages = allowed_languages_get_language_options();
$users_allowed_languages = allowed_languages_get_allowed_languages_for_user($user);
// Merge the array of languages with the all languages option.
$language_options = [
'all' => t('Allow all languages'),
] + $languages;
// Diff the keys from the languages against the users allowed languages to
// determine if the all languages checkbox should be checked.
$not_allowed_languages = array_diff(array_keys($languages), $users_allowed_languages);
if (!$not_allowed_languages) {
$users_allowed_languages[] = 'all';
}
$form['allowed_languages'] = [
'#tree' => TRUE,
'#type' => 'details',
'#title' => t('Allowed languages'),
'#open' => TRUE,
];
$form['allowed_languages']['languages'] = [
'#type' => 'checkboxes',
'#options' => $language_options,
'#default_value' => $users_allowed_languages,
];
$form['actions']['submit']['#submit'][] = 'allowed_languages_user_form_submit';
$form['#attached']['library'][] = 'allowed_languages/user';
}