Hello @Crush33
With apps that allow plugins or extensions, it is almost impossible to test and verify everything that is out there.
It is the developer's responsibility to provide extensions that work.
For the future, please don't use screenshots for code.
I can't copy-paste some of the PHP code for testing since it is a picture.
I was able to get the code via OCR and put it into /app/data/custom/this.php
<?php
//phpinfo();
//var_dump($_SERVER["CONTEXT_DOCUMENT_ROOT"]);
// Load Dolibarr environment
$res = 0;
// Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined)
if (!$res && !empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) {
$res = @include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php";
}
// Try main.inc.php into web root detected using web root calculated 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)) ."/main.inc.php")) {
$res = @include substr($tmp, 0, ($i +1)) ."/main.inc.php";
}
if (!$res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1))) ."/main.inc.php")) {
$res = @include dirname(substr($tmp, 0, ($i+1)))."/main.inc.php";
}
// Try main.inc.php using relative path
if (!$res && file_exists(" .. /main.inc.php")) {
$res = @include " .. /main.inc.php";
}
if (!$res && file_exists(" .. / .. /main.inc.php")) {
$res = @include " .. / .. /main.inc.php";
}
if (!$res && file_exists(" .. / .. / .. /main.inc.php")) {
$res = @include " .. / .. / .. /main.inc.php";
}
if (!$res) {
die("Include of main fails");
}
When I access this file with the browser path $DOMAIN/custom/this.php I get:
[image: 1750748868980-cf420bdc-1153-417c-a6a4-0099ac6086f4-image-resized.png]
Simply testing:
<?php
//phpinfo();
var_dump($_SERVER["CONTEXT_DOCUMENT_ROOT"]);
This shows:
string(16) "/app/code/htdocs"
And with this as path to main.inc.php is working.