function ModulesUninstallConfirmForm::buildForm

Same name and namespace in other branches
  1. 9 core/modules/system/src/Form/ModulesUninstallConfirmForm.php \Drupal\system\Form\ModulesUninstallConfirmForm::buildForm()
  2. 8.9.x core/modules/system/src/Form/ModulesUninstallConfirmForm.php \Drupal\system\Form\ModulesUninstallConfirmForm::buildForm()
  3. 11.x core/modules/system/src/Form/ModulesUninstallConfirmForm.php \Drupal\system\Form\ModulesUninstallConfirmForm::buildForm()

Overrides ConfirmFormBase::buildForm

File

core/modules/system/src/Form/ModulesUninstallConfirmForm.php, line 143

Class

ModulesUninstallConfirmForm
Builds a confirmation form to uninstall selected modules.

Namespace

Drupal\system\Form

Code

public function buildForm(array $form, FormStateInterface $form_state) {
  // Retrieve the list of modules from the key value store.
  $account = $this->currentUser()
    ->id();
  $this->modules = $this->keyValueExpirable
    ->get($account);
  // Prevent this page from showing when the module list is empty.
  if (empty($this->modules)) {
    $this->messenger()
      ->addError($this->t('The selected modules could not be uninstalled, either due to a website problem or due to the uninstall confirmation form timing out.'));
    return $this->redirect('system.modules_uninstall');
  }
  $data = $this->moduleExtensionList
    ->getList();
  $form['text']['#markup'] = '<p>' . $this->t('The following modules will be completely uninstalled from your site, and <em>all data from these modules will be lost</em>!') . '</p>';
  $form['modules'] = [
    '#theme' => 'item_list',
    '#items' => array_map(function ($module) use ($data) {
      return $data[$module]->info['name'];
    }, $this->modules),
  ];
  if (!empty($this->installProfile) && in_array($this->installProfile, $this->modules, TRUE)) {
    $form['profile']['#markup'] = '<p>' . $this->t('Once uninstalled, the %install_profile profile cannot be reinstalled.', [
      '%install_profile' => $data[$this->installProfile]->info['name'],
    ]) . '</p>';
  }
  // List the dependent entities.
  $this->addDependencyListsToForm($form, 'module', $this->modules, $this->configManager, $this->entityTypeManager);
  return parent::buildForm($form, $form_state);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.