diff --git a/htdocs/core/class/infobox.class.php b/htdocs/core/class/infobox.class.php
index 5b3881e06e4..622cc757983 100644
--- a/htdocs/core/class/infobox.class.php
+++ b/htdocs/core/class/infobox.class.php
@@ -127,18 +127,30 @@ class InfoBox
$box->box_id = (empty($obj->box_id) ? '' : $obj->box_id);
$box->note = (empty($obj->note) ? '' : $obj->note);
- // Filter on box->enabled (used for example by box_comptes) and box->depends
+ // Filter on box->enabled (used for example by box_comptes)
+ // Filter also on box->depends. Example: array("product|service") or array("contrat", "service")
$enabled=$box->enabled;
if (isset($box->depends) && count($box->depends) > 0)
{
- foreach($box->depends as $module)
+ foreach($box->depends as $moduleelem)
{
- //print $boxname.'-'.$module.'
';
- $tmpmodule=preg_replace('/@[^@]+/','',$module);
- if (empty($conf->$tmpmodule->enabled)) $enabled=0;
+ $arrayelem=explode('|',$moduleelem);
+ $tmpenabled=0; // $tmpenabled is used for the '|' test (OR)
+ foreach($arrayelem as $module)
+ {
+ $tmpmodule=preg_replace('/@[^@]+/','',$module);
+ if (! empty($conf->$tmpmodule->enabled)) $tmpenabled=1;
+ //print $boxname.'-'.$module.'-module enabled='.(empty($conf->$tmpmodule->enabled)?0:1).'
';
+ }
+ if (empty($tmpenabled)) // We found at least one module required that disabled
+ {
+ $enabled=0;
+ break;
+ }
}
}
-
+ //print '=>'.$boxname.'-enabled='.$enabled.'
';
+
//print 'xx module='.$module.' enabled='.$enabled;
if ($enabled) $boxes[]=$box;
else unset($box);