public function LanguageSwitcherExtendedSettingsForm::buildForm in Language Switcher Extended 8
Form constructor.
Parameters
array $form: An associative array containing the structure of the form.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Return value
array The form structure.
Overrides ConfigFormBase::buildForm
File
- src/
Form/ LanguageSwitcherExtendedSettingsForm.php, line 35
Class
- LanguageSwitcherExtendedSettingsForm
- Configure language_switcher_extended settings for this site.
Namespace
Drupal\language_switcher_extended\FormCode
public function buildForm(array $form, FormStateInterface $form_state) {
$config = $this
->config('language_switcher_extended.settings');
$form['mode'] = [
'#type' => 'radios',
'#title' => $this
->t('Language Switcher Mode'),
'#description' => $this
->t('Choose the preferred Language Switcher behavior.'),
'#default_value' => $config
->get('mode'),
'#options' => [
'default' => $this
->t('Default core'),
'always_link_to_front' => $this
->t('Always link to the frontpage'),
'process_untranslated' => $this
->t('Alter the language switcher for untranslated content entities'),
],
'default' => [
'#description' => $this
->t('Use the default core processor.'),
],
'always_link_to_front' => [
'#description' => $this
->t('Always link all language switcher items to their corresponding frontpage.'),
],
'process_untranslated' => [
'#description' => $this
->t('Choose between different processor methods for resolving untranslated languages for the current content entity.'),
],
'#required' => TRUE,
];
$form['untranslated_handler'] = [
'#type' => 'select',
'#title' => $this
->t('Untranslated Handler'),
'#description' => $this
->t('How should an untranslated language switcher item be resolved.'),
'#default_value' => $config
->get('untranslated_handler'),
'#options' => [
'hide_link' => $this
->t('Hide the language switcher link'),
'link_to_front' => $this
->t('Link to the frontpage'),
'no_link' => $this
->t('Display the language without link'),
],
'#states' => [
'visible' => [
':input[name="mode"]' => [
'value' => 'process_untranslated',
],
],
'required' => [
':input[name="mode"]' => [
'value' => 'process_untranslated',
],
],
],
];
$form['hide_single_link'] = [
'#type' => 'checkbox',
'#title' => $this
->t('Hide single link'),
'#description' => $this
->t('Hide the remaining language switcher links, if non existing translations were hidden.'),
'#default_value' => $config
->get('hide_single_link'),
'#states' => [
'visible' => [
':input[name="mode"]' => [
'value' => 'process_untranslated',
],
'select[name="untranslated_handler"]' => [
'value' => 'hide_link',
],
],
],
];
$form['hide_single_link_block'] = [
'#type' => 'checkbox',
'#title' => $this
->t('Hide single link block'),
'#description' => $this
->t('Hide the block when the single link is hidden.'),
'#default_value' => $config
->get('hide_single_link_block'),
'#states' => [
'visible' => [
':input[name="hide_single_link"]' => [
'checked' => TRUE,
],
],
],
];
$form['current_language_mode'] = [
'#type' => 'select',
'#title' => $this
->t('Current language mode'),
'#description' => $this
->t('How should a current language switcher item be resolved.'),
'#default_value' => $config
->get('current_language_mode'),
'#options' => [
'default' => $this
->t('Use the default core processor.'),
'hide_link' => $this
->t('Hide the language switcher link'),
'no_link' => $this
->t('Display the language without link'),
],
'#states' => [
'invisible' => [
':input[name="mode"]' => [
'value' => 'default',
],
],
],
];
$form['show_langcode'] = [
'#type' => 'checkbox',
'#title' => $this
->t('Show language code'),
'#description' => $this
->t('Display the switcher options in language code instead of the full language name.'),
'#default_value' => $config
->get('show_langcode'),
];
return parent::buildForm($form, $form_state);
}