diff --git a/core/modules/system/system.admin.inc b/core/modules/system/system.admin.inc index 11b72a5..88feb0e 100644 --- a/core/modules/system/system.admin.inc +++ b/core/modules/system/system.admin.inc @@ -277,83 +277,59 @@ function theme_system_modules_details($variables) { } /** - * Returns HTML for a table of currently disabled modules. + * Prepares variables for the module uninstall template. * + * @todo * @param $variables * An associative array containing: * - form: A render element representing the form. * * @ingroup themeable */ -function theme_system_modules_uninstall($variables) { +function template_preprocess_system_modules_uninstall(&$variables) { $form = $variables['form']; + $variables['modules'] = []; + + $variables['empty'] = t('No modules are available to uninstall.'); + + // Table headers. + $variables['header'] = array( + 'uninstall' => t('Uninstall'), + 'name' => t('Name'), + 'description' => t('Description'), + ); // No theming for the confirm form. if (isset($form['confirm'])) { return drupal_render($form); } - // Table headers. - $header = array(t('Uninstall'), - t('Name'), - t('Description'), - ); + // Iterate through all the modules, which are children of this element. + foreach (Element::children($form['modules']) as $key) { + $module = $form['modules'][$key]; + + $module['checkbox'] = $form['uninstall'][$key]; + $module['checkbox_id'] = $form['uninstall'][$key]['#id']; - // Display table. - $rows = array(); - foreach (Element::children($form['modules']) as $module) { - $disabled_header = ''; - $disabled_reasons = ''; // Add the modules requiring the module in question as a validation reason. - if (!empty($form['modules'][$module]['#required_by'])) { - $form['modules'][$module]['#validation_reasons'][] = \Drupal::translation()->translate('Required by: @modules', array('@modules' => implode(', ',$form['modules'][$module]['#required_by']))); + if (!empty($module['#required_by'])) { + $module['#validation_reasons'][] = \Drupal::translation() + ->translate('Required by: @modules', array('@modules' => implode(', ', $module['#required_by']))); } - if (!empty($form['modules'][$module]['#validation_reasons'])) { - $disabled_reasons = [ + if (!empty($module['#validation_reasons'])) { + $module['disabled_reasons'] = [ '#theme' => 'item_list', - '#items' => $form['modules'][$module]['#validation_reasons'], + '#items' => $module['#validation_reasons'], ]; - $disabled_reasons = drupal_render($disabled_reasons); - $disabled_header = \Drupal::translation()->formatPlural(count($form['modules'][$module]['#validation_reasons']), + $module['disabled_header'] = \Drupal::translation()->formatPlural(count($module['#validation_reasons']), 'The following reason prevents @module from being uninstalled:', 'The following reasons prevents @module from being uninstalled:', - array('@module' => $form['modules'][$module]['#module_name'])); + array('@module' => $module['#module_name'])); } - $rows[] = array( - array('data' => drupal_render($form['uninstall'][$module]), 'align' => 'center'), - array( - 'data' => array( - '#type' => 'inline_template', - '#template' => '', - '#context' => array('module_id' => $form['uninstall'][$module]['#id'], 'module_name' => drupal_render($form['modules'][$module]['name'])), - ) - ), - array( - 'data' => array( - '#type' => 'inline_template', - '#template' => '{{ module_description }}{% if disabled_header is not empty %}
+ {{ header.uninstall }} + | ++ {{ header.name }} + | ++ {{ header.description }} + | +
---|---|---|
+ {{ module.checkbox }} + | ++ + | +
+ {{ module.description }}
+ {% if module.disabled_header is not empty %}
+ {{ module.disabled_header }}{{ module.disabled_reasons }}
+ {% endif %}
+ |
+
{{ empty }} | +