function module_blacklist_form_system_modules_alter in Module Blacklist 8
Implements hook_form_FORM_ID_alter().
File
- ./
module_blacklist.module, line 39 - Module Blacklist implementation of hooks.
Code
function module_blacklist_form_system_modules_alter(&$form, FormStateInterface $form_state, $form_id) {
$module_blacklist = Settings::get('module_blacklist');
if (!$module_blacklist) {
// Skips if the blacklist is empty.
return;
}
foreach ($form['modules'] as $module_package => $modules) {
if (!is_array($modules)) {
continue;
}
foreach ($modules as $module_name => $module_info) {
// Checks whether the module is blacklisted.
if (!in_array($module_name, $module_blacklist)) {
continue;
}
// Skips modules that are already enabled, even if it is blacklisted.
if ($form['modules'][$module_package][$module_name]['enable']['#default_value'] === TRUE) {
continue;
}
// Alters the module form row, disabling the module installation.
$form['modules'][$module_package][$module_name]['enable']['#disabled'] = TRUE;
$form['modules'][$module_package][$module_name]['name']['#markup'] .= " (blocked)";
$form['modules'][$module_package][$module_name]['description']['#markup'] .= ' ' . t('WARNING: The installation of this module is being blocked by Module Blacklist.');
}
}
}