diff --git a/core/modules/system/lib/Drupal/system/Form/ModulesUninstallConfirmForm.php b/core/modules/system/lib/Drupal/system/Form/ModulesUninstallConfirmForm.php index b5f0e4a..0946132 100644 --- a/core/modules/system/lib/Drupal/system/Form/ModulesUninstallConfirmForm.php +++ b/core/modules/system/lib/Drupal/system/Form/ModulesUninstallConfirmForm.php @@ -64,8 +64,7 @@ public static function create(ContainerInterface $container) { return new static( $container->get('module_handler'), $container->get('keyvalue.expirable'), - $container->get('string_translation'), - $container->get('request') + $container->get('string_translation') ); } @@ -78,14 +77,11 @@ public static function create(ContainerInterface $container) { * The key value expirable factory. * @param \Drupal\Core\StringTranslation\TranslationManager * The translation manager. - * @param \Symfony\Component\HttpFoundation\Request $request - * The request object. */ - public function __construct(ModuleHandlerInterface $module_handler, KeyValueExpirableFactory $key_value_expirable_factory, TranslationManager $translation_manager, Request $request) { + public function __construct(ModuleHandlerInterface $module_handler, KeyValueExpirableFactory $key_value_expirable_factory, TranslationManager $translation_manager) { $this->moduleHandler = $module_handler; $this->keyValueExpirable = $key_value_expirable_factory->get('modules_uninstall'); $this->translationManager = $translation_manager; - $this->request = $request; } /** @@ -126,9 +122,9 @@ public function getFormID() { /** * {@inheritdoc} */ - public function buildForm(array $form, array &$form_state) { + public function buildForm(array $form, array &$form_state, Request $request = NULL) { // Retrieve the list of modules from the key value store. - $account = $this->request->attributes->get('account')->id(); + $account = $request->attributes->get('account')->id(); $this->modules = $this->keyValueExpirable->get($account); // Prevent this page from showing when the module list is empty. @@ -136,6 +132,9 @@ public function buildForm(array $form, array &$form_state) { return new RedirectResponse('/admin/modules/uninstall'); } + // Store the request for use in the submit handler. + $this->request = $request; + $data = system_rebuild_module_data(); $form['text']['#markup'] = '
' . $this->translationManager->translate('The following modules will be completely uninstalled from your site, and all data from these modules will be lost!') . '
'; $form['modules'] = array( diff --git a/core/modules/system/lib/Drupal/system/Form/ModulesUninstallForm.php b/core/modules/system/lib/Drupal/system/Form/ModulesUninstallForm.php index e27472d..a779453 100644 --- a/core/modules/system/lib/Drupal/system/Form/ModulesUninstallForm.php +++ b/core/modules/system/lib/Drupal/system/Form/ModulesUninstallForm.php @@ -56,8 +56,7 @@ public static function create(ContainerInterface $container) { return new static( $container->get('module_handler'), $container->get('keyvalue.expirable'), - $container->get('string_translation'), - $container->get('request') + $container->get('string_translation') ); } @@ -70,14 +69,11 @@ public static function create(ContainerInterface $container) { * The key value expirable factory. * @param \Drupal\Core\StringTranslation\TranslationManager $translation_manager * The translation manager. - * @param \Symfony\Component\HttpFoundation\Request $request - * The request object. */ - public function __construct(ModuleHandlerInterface $module_handler, KeyValueExpirableFactory $key_value_expirable_factory, TranslationManager $translation_manager, Request $request) { + public function __construct(ModuleHandlerInterface $module_handler, KeyValueExpirableFactory $key_value_expirable_factory, TranslationManager $translation_manager) { $this->moduleHandler = $module_handler; $this->keyValueExpirable = $key_value_expirable_factory->get('modules_uninstall'); $this->translationManager = $translation_manager; - $this->request = $request; } /** @@ -90,12 +86,15 @@ public function getFormID() { /** * {@inheritdoc} */ - public function buildForm(array $form, array &$form_state) { + public function buildForm(array $form, array &$form_state, Request $request = NULL) { $form['modules'] = array(); // Make sure the install API is available. include_once DRUPAL_ROOT . '/core/includes/install.inc'; + // Store the request for use in the submit handler. + $this->request = $request; + // Get a list of disabled, installed modules. $modules = system_rebuild_module_data(); $disabled = array_filter($modules, function ($module) { @@ -109,8 +108,11 @@ public function buildForm(array $form, array &$form_state) { } $profile = drupal_get_profile(); + + // Sort all modules by their name. $this->moduleHandler->loadInclude('system', 'inc', 'system.admin'); uasort($disabled, 'system_sort_modules_by_info_name'); + $form['uninstall'] = array('#tree' => TRUE); foreach ($disabled as $module) { $name = $module->info['name'] ?: $module->name;