From dcd97bb1cf869a04f15226074631e7f0ae340f18 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 2 Nov 2011 14:15:14 +0100 Subject: [PATCH] Better error management --- htdocs/admin/modules.php | 70 ++++++++++++++++++++++------------------ 1 file changed, 39 insertions(+), 31 deletions(-) diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php index fb85c0016be..eb1fee0205a 100644 --- a/htdocs/admin/modules.php +++ b/htdocs/admin/modules.php @@ -86,9 +86,9 @@ $j = 0; // j is module number. Automatically affected if module number not defin foreach ($conf->file->dol_document_root as $type => $dirroot) { $modulesdir[] = $dirroot . "/core/modules/"; - + if ($type == 'alt') - { + { $handle=@opendir($dirroot); if (is_resource($handle)) { @@ -106,6 +106,7 @@ foreach ($conf->file->dol_document_root as $type => $dirroot) } } } +//var_dump($modulesdir); foreach ($modulesdir as $dir) { @@ -124,38 +125,45 @@ foreach ($modulesdir as $dir) if ($modName) { - include_once($dir.$file); - $objMod = new $modName($db); - - if ($objMod->numero > 0) + try { - $j = $objMod->numero; + $res=include_once($dir.$file); + $objMod = new $modName($db); + + if ($objMod->numero > 0) + { + $j = $objMod->numero; + } + else + { + $j = 1000 + $i; + } + + $modulequalified=1; + + // We discard modules according to features level (PS: if module is activated we always show it) + $const_name = 'MAIN_MODULE_'.strtoupper(preg_replace('/^mod/i','',get_class($objMod))); + if ($objMod->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2 && ! $conf->global->$const_name) $modulequalified=0; + if ($objMod->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1 && ! $conf->global->$const_name) $modulequalified=0; + + if ($modulequalified) + { + $modules[$i] = $objMod; + $filename[$i]= $modName; + $orders[$i] = $objMod->family."_".$j; // Tri par famille puis numero module + //print "x".$modName." ".$orders[$i]."\n
"; + if (isset($categ[$objMod->special])) $categ[$objMod->special]++; // Array of all different modules categories + else $categ[$objMod->special]=1; + $dirmod[$i] = $dirroot; + $j++; + $i++; + } + else dol_syslog("Module ".get_class($objMod)." not qualified"); } - else + catch(Exception $e) { - $j = 1000 + $i; + dol_syslog("Failed to load ".$dir.$file." ".$e->getMessage(), LOG_ERR); } - - $modulequalified=1; - - // We discard modules according to features level (PS: if module is activated we always show it) - $const_name = 'MAIN_MODULE_'.strtoupper(preg_replace('/^mod/i','',get_class($objMod))); - if ($objMod->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2 && ! $conf->global->$const_name) $modulequalified=0; - if ($objMod->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1 && ! $conf->global->$const_name) $modulequalified=0; - - if ($modulequalified) - { - $modules[$i] = $objMod; - $filename[$i]= $modName; - $orders[$i] = $objMod->family."_".$j; // Tri par famille puis numero module - //print "x".$modName." ".$orders[$i]."\n
"; - if (isset($categ[$objMod->special])) $categ[$objMod->special]++; // Array of all different modules categories - else $categ[$objMod->special]=1; - $dirmod[$i] = $dirroot; - $j++; - $i++; - } - else dol_syslog("Module ".get_class($objMod)." not qualified"); } } } @@ -317,7 +325,7 @@ if ($mode != 4) //print $familytext; $oldfamily=$family; } - + $var=!$var; print '\n";