You are here

public function ConfigureMultilingualForm::buildForm in Varbase: The Ultimate Drupal CMS Starter Kit (Bootstrap Ready) 8.6

Same name and namespace in other branches
  1. 8.8 src/Form/ConfigureMultilingualForm.php \Drupal\varbase\Form\ConfigureMultilingualForm::buildForm()
  2. 8.4 src/Form/ConfigureMultilingualForm.php \Drupal\varbase\Form\ConfigureMultilingualForm::buildForm()
  3. 8.5 src/Form/ConfigureMultilingualForm.php \Drupal\varbase\Form\ConfigureMultilingualForm::buildForm()
  4. 8.7 src/Form/ConfigureMultilingualForm.php \Drupal\varbase\Form\ConfigureMultilingualForm::buildForm()
  5. 9.0.x src/Form/ConfigureMultilingualForm.php \Drupal\varbase\Form\ConfigureMultilingualForm::buildForm()

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 FormInterface::buildForm

File

src/Form/ConfigureMultilingualForm.php, line 79

Class

ConfigureMultilingualForm
Defines form for selecting Varbase's Multiligual configuration options form.

Namespace

Drupal\varbase\Form

Code

public function buildForm(array $form, FormStateInterface $form_state, array &$install_state = NULL) {
  $standard_languages = LanguageManager::getStandardLanguageList();
  $select_options = array();
  $browser_options = array();
  foreach ($standard_languages as $langcode => $language_names) {
    $select_options[$langcode] = $language_names[0];
    $browser_options[$langcode] = $langcode;
  }
  asort($select_options);
  $default_langcode = \Drupal::configFactory()
    ->getEditable('system.site')
    ->get('default_langcode');

  // Save the default language name.
  $default_language_name = $select_options[$default_langcode];

  // Remove the default language from the list of multilingual languages.
  if (isset($select_options[$default_langcode])) {
    unset($select_options[$default_langcode]);
  }
  if (isset($browser_options[$default_langcode])) {
    unset($browser_options[$default_langcode]);
  }
  $form['#title'] = $this
    ->t('Multilingual configuration');
  $form['multilingual_configuration_introduction'] = array(
    '#weight' => -1,
    '#prefix' => '<p>',
    '#markup' => '<b>' . $default_language_name . '</b> ' . $this
      ->t("is the default language."),
    '#suffix' => '</p>',
  );
  $form['enable_multilingual'] = array(
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Enable multiple languages for this site'),
    '#description' => $this
      ->t('This will enable the necessary modules for a multilingual website. These include: Language, Interface Translation, Content Translation, Configuration Translation, and its recommended configuration.'),
    '#default_value' => FALSE,
  );
  $form['multilingual_languages'] = array(
    '#type' => 'select',
    '#title' => $this
      ->t("Please select your site's other language(s)"),
    '#description' => $this
      ->t('You can skip this and add languages later.'),
    '#options' => $select_options,
    '#multiple' => TRUE,
    '#size' => 8,
    '#attributes' => array(
      'style' => 'width:100%;',
    ),
    '#states' => array(
      'visible' => array(
        ':input[name="enable_multilingual"]' => array(
          'checked' => TRUE,
        ),
      ),
      'invisible' => array(
        ':input[name="enable_multilingual"]' => array(
          'checked' => FALSE,
        ),
      ),
    ),
  );
  $form['actions'] = [
    'continue' => [
      '#type' => 'submit',
      '#value' => $this
        ->t('Save and continue'),
      '#button_type' => 'primary',
    ],
    '#type' => 'actions',
    '#weight' => 5,
  ];
  return $form;
}