function entity_language_fallback_form_language_admin_edit_form_alter in Entity Language Fallback 8
Implements hook_form_FORM_ID_alter()
File
- ./
entity_language_fallback.module, line 32 - Add fallback languages to entities.
Code
function entity_language_fallback_form_language_admin_edit_form_alter(&$form, FormStateInterface $form_state) {
/** @var Drupal\language\Entity\ConfigurableLanguage $this_language */
$this_language = $form_state
->getFormObject()
->getEntity();
$languages = Drupal::languageManager()
->getLanguages();
$options = [];
foreach ($languages as $language) {
// Only include this language if its not itself.
if ($language
->getId() != $this_language
->getId()) {
$options[$language
->getId()] = $language
->getName();
}
}
$form['entity_language_fallback'] = [
'#title' => t('Entity fallback language'),
'#description' => t('Choose one or more fallback languages in prioritized order. The languages are used as fallback in entity view.'),
'#type' => 'details',
'#open' => TRUE,
'#tree' => TRUE,
];
// Creating one priority field per available language.
$default_values = $this_language
->getThirdPartySetting('entity_language_fallback', 'fallback_langcodes', []);
for ($i = 0; $i < count($options); $i++) {
$form['entity_language_fallback'][$i] = [
'#type' => 'select',
'#title' => t('Priority @priority', [
'@priority' => $i + 1,
]),
'#description' => t('Choose the language used as priority @priority fallback language.', [
'@priority' => $i + 1,
]),
'#options' => $options,
'#default_value' => !empty($default_values[$i]) ? $default_values[$i] : '',
'#empty_option' => t('-None-'),
'#tree' => TRUE,
];
}
$form['#entity_builders'][] = 'entity_language_fallback_form_language_admin_edit_form_builder';
}