diff --git a/core/modules/system/system.install b/core/modules/system/system.install index 614ad9e..4303cb0 100644 --- a/core/modules/system/system.install +++ b/core/modules/system/system.install @@ -245,6 +245,38 @@ function system_requirements($phase) { $requirements['php_extensions']['value'] = t('Enabled'); } + // Missing modules. + if ($phase == 'runtime') { + $extension_config = \Drupal::config('core.extension'); + $core_extension = $extension_config->getRawData(); + $module_data = system_rebuild_module_data(); + $nonexistent_modules = array_keys(array_diff_key($core_extension['module'], $module_data)); + + $options = []; + foreach ($nonexistent_modules as $module) { + $options[] = t('%module module is missing. Put the code back in the original place and uninstall it.', ['%module' => $module]); + } + + $requirements['missing_modules'] = [ + 'title' => t('Missing modules'), + ]; + + $description = [ + '#type' => 'inline_template', + '#template' => '{{ configuration_error_list }}', + '#context' => [ + 'configuration_error_list' => [ + '#theme' => 'item_list', + '#items' => $options, + ], + ], + ]; + + $requirements['missing_modules']['value'] = t('Not found'); + $requirements['missing_modules']['severity'] = REQUIREMENT_ERROR; + $requirements['missing_modules']['description'] = $description; + } + if ($phase == 'install' || $phase == 'runtime') { // Check to see if OPcache is installed. if (!OpCodeCache::isEnabled()) {