From 920d87dc5f4f859629eab4cfba79c2faf9266e8e Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Sat, 13 Aug 2011 09:36:45 +0000 Subject: [PATCH] Fix: change for external modules --- htdocs/admin/system/modules.php | 39 ++++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/htdocs/admin/system/modules.php b/htdocs/admin/system/modules.php index 7aa01be169e..422a65b4b4a 100644 --- a/htdocs/admin/system/modules.php +++ b/htdocs/admin/system/modules.php @@ -20,7 +20,7 @@ /** * \file htdocs/admin/system/modules.php * \brief File to list all Dolibarr modules - * \version $Id: modules.php,v 1.15 2011/07/31 22:23:14 eldy Exp $ + * \version $Id: modules.php,v 1.16 2011/08/13 09:36:45 hregis Exp $ */ require("../../main.inc.php"); @@ -48,22 +48,45 @@ $modules = array(); $modules_names = array(); $modules_files = array(); -// Load list of modules -foreach($conf->file->dol_document_root as $searchdir) +foreach ($conf->file->dol_document_root as $type => $dirroot) { - $dirtoscan = $searchdir . "/includes/modules/"; - $handle=opendir($dirtoscan); + $modulesdir[] = $dirroot . "/includes/modules/"; + + if ($type == 'alt') + { + $handle=@opendir($dirroot); + if (is_resource($handle)) + { + while (($file = readdir($handle))!==false) + { + if (is_dir($dirroot.'/'.$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS' && $file != 'includes') + { + if (is_dir($dirroot . '/' . $file . '/includes/modules/')) + { + $modulesdir[] = $dirroot . '/' . $file . '/includes/modules/'; + } + } + } + closedir($handle); + } + } +} + +// Load list of modules +foreach($modulesdir as $dir) +{ + $handle=opendir($dir); if (is_resource($handle)) { while (($file = readdir($handle))!==false) { - if (is_readable($dirtoscan.$file) && substr($file, 0, 3) == 'mod' && substr($file, dol_strlen($file) - 10) == '.class.php') + if (is_readable($dir.$file) && substr($file, 0, 3) == 'mod' && substr($file, dol_strlen($file) - 10) == '.class.php') { $modName = substr($file, 0, dol_strlen($file) - 10); if ($modName) { - include_once($dirtoscan.$file); + include_once($dir.$file); $objMod = new $modName($db); $modules[$objMod->numero]=$objMod; @@ -131,5 +154,5 @@ foreach($rights_ids as $right_id) $old = $right_id; } -llxFooter('$Date: 2011/07/31 22:23:14 $ - $Revision: 1.15 $'); +llxFooter('$Date: 2011/08/13 09:36:45 $ - $Revision: 1.16 $'); ?>