Fix: Loading of boxes from external modules
This commit is contained in:
parent
a1a8fac25c
commit
7dc984fd6f
@ -87,7 +87,7 @@ class InfoBox
|
|||||||
{
|
{
|
||||||
if (preg_match('/^([^@]+)@([^@]+)$/i',$obj->file,$regs))
|
if (preg_match('/^([^@]+)@([^@]+)$/i',$obj->file,$regs))
|
||||||
{
|
{
|
||||||
$boxname = $regs[1];
|
$boxname = preg_replace('/.php$/i','',$regs[1]);
|
||||||
$module = $regs[2];
|
$module = $regs[2];
|
||||||
$relsourcefile = "/".$module."/core/boxes/".$boxname.".php";
|
$relsourcefile = "/".$module."/core/boxes/".$boxname.".php";
|
||||||
}
|
}
|
||||||
@ -95,9 +95,9 @@ class InfoBox
|
|||||||
{
|
{
|
||||||
$boxname=preg_replace('/.php$/i','',$obj->file);
|
$boxname=preg_replace('/.php$/i','',$obj->file);
|
||||||
$relsourcefile = "/core/boxes/".$boxname.".php";
|
$relsourcefile = "/core/boxes/".$boxname.".php";
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO PERF Do not make "dol_include_once" here, nor "new" later. This means, we must store a 'depends' field to store modules list, then
|
// TODO PERF Do not make "dol_include_once" here, nor "new" later. This means, we must store a 'depends' field to store modules list, then
|
||||||
// the "enabled" condition for modules forbidden for external users and the depends condition can be done.
|
// the "enabled" condition for modules forbidden for external users and the depends condition can be done.
|
||||||
// Goal is to avoid making a new instance for each boxes returned by select.
|
// Goal is to avoid making a new instance for each boxes returned by select.
|
||||||
|
|
||||||
@ -106,7 +106,7 @@ class InfoBox
|
|||||||
{
|
{
|
||||||
$box=new $boxname($db,$obj->note); // Constructor may set properties like box->enabled. obj->note is note into box def, not user params.
|
$box=new $boxname($db,$obj->note); // Constructor may set properties like box->enabled. obj->note is note into box def, not user params.
|
||||||
//$box=new stdClass();
|
//$box=new stdClass();
|
||||||
|
|
||||||
// box properties
|
// box properties
|
||||||
$box->rowid = (empty($obj->rowid) ? '' : $obj->rowid);
|
$box->rowid = (empty($obj->rowid) ? '' : $obj->rowid);
|
||||||
$box->id = (empty($obj->box_id) ? '' : $obj->box_id);
|
$box->id = (empty($obj->box_id) ? '' : $obj->box_id);
|
||||||
@ -126,7 +126,7 @@ class InfoBox
|
|||||||
// box_def properties
|
// box_def properties
|
||||||
$box->box_id = (empty($obj->box_id) ? '' : $obj->box_id);
|
$box->box_id = (empty($obj->box_id) ? '' : $obj->box_id);
|
||||||
$box->note = (empty($obj->note) ? '' : $obj->note);
|
$box->note = (empty($obj->note) ? '' : $obj->note);
|
||||||
|
|
||||||
// Filter on box->enabled (fused for example by box_comptes) and box->depends
|
// Filter on box->enabled (fused for example by box_comptes) and box->depends
|
||||||
//$enabled=1;
|
//$enabled=1;
|
||||||
$enabled=$box->enabled;
|
$enabled=$box->enabled;
|
||||||
@ -135,14 +135,15 @@ class InfoBox
|
|||||||
foreach($box->depends as $module)
|
foreach($box->depends as $module)
|
||||||
{
|
{
|
||||||
//print $boxname.'-'.$module.'<br>';
|
//print $boxname.'-'.$module.'<br>';
|
||||||
if (empty($conf->$module->enabled)) $enabled=0;
|
$tmpmodule=preg_replace('/@[^@]+/','',$module);
|
||||||
|
if (empty($conf->$tmpmodule->enabled)) $enabled=0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//print 'xx module='.$module.' enabled='.$enabled;
|
//print 'xx module='.$module.' enabled='.$enabled;
|
||||||
if ($enabled) $boxes[]=$box;
|
if ($enabled) $boxes[]=$box;
|
||||||
else unset($box);
|
else unset($box);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$j++;
|
$j++;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user