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 '