diff --git a/htdocs/modulebuilder/template/scripts/myobject.php b/htdocs/modulebuilder/template/scripts/myobject.php index a8c280193ea..c2be67451cb 100755 --- a/htdocs/modulebuilder/template/scripts/myobject.php +++ b/htdocs/modulebuilder/template/scripts/myobject.php @@ -42,12 +42,17 @@ $error=0; @set_time_limit(0); // No timeout for this script define('EVEN_IF_ONLY_LOGIN_ALLOWED',1); // Set this define to 0 if you want to lock your script when dolibarr setup is "locked to admin user only". -// Include and load Dolibarr environment variables +// Load Dolibarr environment $res=0; -if (! $res && file_exists($path."master.inc.php")) $res=@include($path."master.inc.php"); -if (! $res && file_exists($path."../master.inc.php")) $res=@include($path."../master.inc.php"); -if (! $res && file_exists($path."../../master.inc.php")) $res=@include($path."../../master.inc.php"); -if (! $res && file_exists($path."../../../master.inc.php")) $res=@include($path."../../../master.inc.php"); +// Try master.inc.php into web root detected using web root caluclated from SCRIPT_FILENAME +$tmp=empty($_SERVER['SCRIPT_FILENAME'])?'':$_SERVER['SCRIPT_FILENAME'];$tmp2=realpath(__FILE__); $i=strlen($tmp)-1; $j=strlen($tmp2)-1; +while($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i]==$tmp2[$j]) { $i--; $j--; } +if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/master.inc.php")) $res=@include(substr($tmp, 0, ($i+1))."/master.inc.php"); +if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/master.inc.php")) $res=@include(dirname(substr($tmp, 0, ($i+1)))."/master.inc.php"); +// Try master.inc.php using relative path +if (! $res && file_exists("../master.inc.php")) $res=@include("../master.inc.php"); +if (! $res && file_exists("../../master.inc.php")) $res=@include("../../master.inc.php"); +if (! $res && file_exists("../../../master.inc.php")) $res=@include("../../../master.inc.php"); if (! $res) die("Include of master fails"); // After this $db, $mysoc, $langs, $conf and $hookmanager are defined (Opened $db handler to database will be closed at end of file). // $user is created but empty.