public function DisableLanguageSettings::buildForm in Disable language 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/ DisableLanguageSettings.php, line 70
Class
- DisableLanguageSettings
- Class DisableLanguageSettings.
Namespace
Drupal\disable_language\FormCode
public function buildForm(array $form, FormStateInterface $form_state) {
$config = $this
->config('disable_language.settings');
$default = $config
->get('redirect_override_routes');
if (is_array($default)) {
$default = implode("\n", $default);
}
$form['help'] = [
'#type' => 'item',
'#title' => $this
->t('Help'),
'#markup' => $this
->t("As we can't define appropriate cache invalidation, you will have to clear your cache after you save this form."),
];
$form['redirect_override_routes'] = [
'#type' => 'textarea',
'#title' => $this
->t('Override routes'),
'#description' => $this
->t('Enter route names (one per line) that should redirect to themselves in the correct language instead of the frontpage'),
'#default_value' => $default,
];
/** @var \Drupal\system\Plugin\Condition\RequestPath $condition */
$condition = $this->conditionManager
->createInstance('request_path');
$form_state
->set([
'conditions',
'request_path',
], $condition);
$form['exclude_request_path'] = $condition
->buildConfigurationForm([], $form_state);
foreach ($form['exclude_request_path'] as $form_element_name => $form_element_value) {
if (isset($form['exclude_request_path'][$form_element_name]['#default_value'])) {
$form['exclude_request_path'][$form_element_name]['#default_value'] = $config
->get('exclude_request_path')[$form_element_name] ?? NULL;
}
}
$form['exclude_request_path']['pages']['#title'] = $this
->t('Exclude by path');
$form['#tree'] = TRUE;
return parent::buildForm($form, $form_state);
}