function ModulesListConfirmForm::submitForm

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

Overrides FormInterface::submitForm

File

core/modules/system/src/Form/ModulesListConfirmForm.php, line 161

Class

ModulesListConfirmForm
Builds a confirmation form for enabling modules with dependencies.

Namespace

Drupal\system\Form

Code

public function submitForm(array &$form, FormStateInterface $form_state) {
    // Remove the key value store entry.
    $account = $this->currentUser()
        ->id();
    $this->keyValueExpirable
        ->delete($account);
    if (!empty($this->modules['install'])) {
        // Don't catch the exception that this can throw for missing dependencies:
        // the form doesn't allow modules with unmet dependencies, so the only way
        // this can happen is if the filesystem changed between form display and
        // submit, in which case the user has bigger problems.
        try {
            // Install the given modules.
            $this->moduleInstaller
                ->install(array_keys($this->modules['install']));
        } catch (PreExistingConfigException $e) {
            $config_objects = $e->flattenConfigObjects($e->getConfigObjects());
            $this->messenger()
                ->addError($this->formatPlural(count($config_objects), 'Unable to install @extension, %config_names already exists in active configuration.', 'Unable to install @extension, %config_names already exist in active configuration.', [
                '%config_names' => implode(', ', $config_objects),
                '@extension' => $this->modules['install'][$e->getExtension()],
            ]));
            return;
        } catch (UnmetDependenciesException $e) {
            $this->messenger()
                ->addError($e->getTranslatedMessage($this->getStringTranslation(), $this->modules['install'][$e->getExtension()]));
            return;
        }
        $module_names = array_values($this->modules['install']);
        $this->messenger()
            ->addStatus($this->formatPlural(count($module_names), 'Module %name has been enabled.', '@count modules have been enabled: %names.', [
            '%name' => $module_names[0],
            '%names' => implode(', ', $module_names),
        ]));
    }
    $form_state->setRedirectUrl($this->getCancelUrl());
}

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