/** * Simulates Drupal's module_enable() * * @see module_enable() * * @param string[] $module_list * Array of module names. * @param bool $enable_dependencies * TRUE, if dependencies should be enabled too. * * @return bool */ function moduleEnable(array $module_list, $enable_dependencies = TRUE) { if ($enable_dependencies) { $module_list = $this->moduleEnableCheckDependencies($module_list); } if (empty($module_list)) { // Nothing to do. All modules already enabled. return TRUE; } $modules_installed = array(); $modules_enabled = array(); foreach ($module_list as $module) { if (1 == $this->systemTable->moduleGetStatus($module)) { // Already installed + enabled, do nothing. continue; } if (-1 == $this->systemTable->moduleGetSchemaVersion($module)) { // Install this module. $this->enableModule($module, TRUE); $modules_installed[] = $module; $modules_enabled[] = $module; } else { // Enable the module. $this->enableModule($module, FALSE); $modules_enabled[] = $module; } } // If any modules were newly installed, invoke hook_modules_installed(). if (!empty($modules_installed)) { $this->hookSystem->moduleInvokeAll('modules_installed', $modules_installed); } // If any modules were newly enabled, invoke hook_modules_enabled(). if (!empty($modules_enabled)) { $this->hookSystem->moduleInvokeAll('modules_enabled', $modules_enabled); } return TRUE; }