From 4138010a713fea558a6be3be1206ddf02d7296da Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Thu, 23 Jun 2016 17:00:47 +0200 Subject: [baseconfig] Take dependencies into account when handling API hooks --- modules-available/baseconfig/api.inc.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'modules-available/baseconfig') diff --git a/modules-available/baseconfig/api.inc.php b/modules-available/baseconfig/api.inc.php index 877ff4a7..af780d99 100644 --- a/modules-available/baseconfig/api.inc.php +++ b/modules-available/baseconfig/api.inc.php @@ -33,15 +33,23 @@ $configVars = array(); function handleModule($file, $ip, $uuid) // Pass ip and uuid instead of global to make them read only { global $configVars; - include $file; + include_once $file; } // Handle any hooks by other modules first // other modules should generally only populate $configVars foreach (glob('modules/*/baseconfig/getconfig.inc.php') as $file) { preg_match('#^modules/([^/]+)/#', $file, $out); - if (!Module::isAvailable($out[1])) + $mod = Module::get($out[1]); + if ($mod === false) continue; + $mod->activate(); + foreach ($mod->getDependencies() as $dep) { + $depFile = 'modules/' . $dep . '/baseconfig/getconfig.inc.php'; + if (file_exists($depFile) && Module::isAvailable($dep)) { + handleModule($depFile, $ip, $uuid); + } + } handleModule($file, $ip, $uuid); } -- cgit v1.2.3-55-g7522