diff -u b/core/modules/system/system.admin.inc b/core/modules/system/system.admin.inc --- b/core/modules/system/system.admin.inc +++ b/core/modules/system/system.admin.inc @@ -191,23 +191,22 @@ function template_preprocess_system_modules_details(&$variables) { $form = $variables['form']; - $header = array( + $header = [ 'installed' => $form['#header'][0]['data'], 'name' => $form['#header'][1]['data'], 'description' => $form['#header'][2]['data'], - ); + ]; - $modules = array(); + $modules = []; // Iterate through all the modules, which are children of this element. foreach (Element::children($form) as $key) { // Stick the key into $module for easier access. $module = $form[$key]; + $item = []; - // Create a new array for this module. - $item = array(); - - // Add the checkbox. unset($module['enable']['#title']); + // Add the checkbox to allow installing new modules and to show the + // installation status of the module. $item['checkbox'] = $module['enable']; // Add the module label and expand/collapse functionality. @@ -219,12 +218,16 @@ // Build out the description content for the module details. $item['description'] = $module['description']; - $renderer = \Drupal::service('renderer'); - $item['machine_name'] = $renderer->render($machine_name_render); + $item['machine_name'] = [ + '#prefix' => '', + '#plain_text' => $key, + '#suffix' => ' $renderer->render($module['version']))); + $item['version'] = t('Version: @module-version', ['@module-version' => $renderer->render($module['version'])]); } $module['#requires'] = array_filter($module['#requires']); @@ -239,7 +242,7 @@ '#items' => $module['#requires'], '#context' => ['list_style' => 'comma-list'], ]; - $item['requires'] = t('Requires: @module-list', array('@module-list' => $renderer->render($requires))); + $item['requires'] = t('Requires: @module-list', ['@module-list' => $renderer->render($requires)]); } if ($required_by) { $required_by = [ @@ -247,11 +250,11 @@ '#items' => $module['#required_by'], '#context' => ['list_style' => 'comma-list'], ]; - $item['required_by'] = t('Required by: @module-list', array('@module-list' => $renderer->render($required_by))); + $item['required_by'] = t('Required by: @module-list', ['@module-list' => $renderer->render($required_by)]); } $links = []; - foreach (array('help', 'permissions', 'configure') as $link_type) { + foreach (['help', 'permissions', 'configure'] as $link_type) { $links[] = $module['links'][$link_type]; } if ($links) { only in patch2: unchanged: --- a/core/modules/system/src/Tests/Form/ModulesListFormWebTest.php +++ b/core/modules/system/src/Tests/Form/ModulesListFormWebTest.php @@ -49,6 +49,10 @@ public function testModuleListForm() { // Check that system_test's help link was rendered correctly. $this->assertFieldByXPath("//a[contains(@href, '/admin/help/system_test') and @title='Help']"); + + // Ensure that Testing modules machine name is printed. Testing module is + // used because its machine name is different than its human readable name. + $this->assertText('simpletest'); } }