public function DropdownLanguage::blockForm in Dropdown Language 8.3
Same name and namespace in other branches
- 8 src/Plugin/Block/DropdownLanguage.php \Drupal\dropdown_language\Plugin\Block\DropdownLanguage::blockForm()
- 8.2 src/Plugin/Block/DropdownLanguage.php \Drupal\dropdown_language\Plugin\Block\DropdownLanguage::blockForm()
- 3.0.x src/Plugin/Block/DropdownLanguage.php \Drupal\dropdown_language\Plugin\Block\DropdownLanguage::blockForm()
Overrides BlockPluginTrait::blockForm
File
- src/
Plugin/ Block/ DropdownLanguage.php, line 236
Class
- DropdownLanguage
- Provides an alternative language switcher block.
Namespace
Drupal\dropdown_language\Plugin\BlockCode
public function blockForm($form, FormStateInterface $form_state) {
$form = parent::blockForm($form, $form_state);
$form['#attached']['library'][] = 'dropdown_language/dropdown-language-admin';
$general_config = $this->configFactory
->get('dropdown_language.setting');
$display_language_id = $general_config
->get('display_language_id');
$current_path = Url::fromRoute('<current>')
->toString();
$general_settings = [
'#type' => 'link',
'#title' => $this
->t('General Settings for all Dropdown Language Blocks'),
'#url' => Url::fromRoute('dropdown_language.setting', [
[
'destination' => $current_path,
],
]),
'#attributes' => [
'class' => [
'dropdown-general-settings',
],
],
];
if ($display_language_id == 3) {
$block_config = $this
->getConfiguration();
$languages = $this->languageManager
->getLanguages();
$form['labels'] = [
'#type' => 'details',
'#title' => $this
->t('Custom Labels for Language Names'),
'#open' => TRUE,
'#tree' => TRUE,
];
foreach ($languages as $lid => $item) {
$form['labels'][$lid] = [
'#type' => 'textfield',
'#required' => TRUE,
'#title' => $this
->t('Label for <q>@lng</q>', [
'@lng' => $item
->getName(),
]),
'#default_value' => isset($block_config['labels'][$lid]) ? $block_config['labels'][$lid] : $item
->getName(),
];
}
$form['labels']['translation-note'] = [
'#type' => 'inline_template',
'#template' => '<dl class="dropdown-language-help"><dt>{{ title }}</dt><dd>{{ text }}</dd></dl>',
'#context' => [
'title' => $this
->t('How to translate custom labels'),
'text' => $this
->t('Create a unique block instance for each language then assign via Language Visibility per block. This is due to the general idea that you are now changing labels that were otherwise normally translatable strings by using these Custom Labels.'),
],
];
$form['labels']['setting-link'] = $general_settings;
}
else {
$form['setting-link'] = $general_settings;
}
return $form;
}