fix: Standard Dolibarr Include-Pattern für setup.php [deploy]
All checks were successful
Deploy Eplan / deploy (push) Successful in 1s

require main.inc.php funktioniert nicht bei Volume-Mounts.
Jetzt Standard-Pattern mit CONTEXT_DOCUMENT_ROOT + Fallbacks.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Eduard Wisch 2026-04-13 18:26:45 +02:00
parent cc92db066a
commit ff86888766

View file

@ -3,9 +3,18 @@
* GPL v3+ * GPL v3+
*/ */
require '../../main.inc.php'; $res = 0;
if (!$res && !empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res = @include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php";
$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";
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");
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
require_once __DIR__.'/../lib/eplan.lib.php'; dol_include_once('/eplan/lib/eplan.lib.php');
$langs->loadLangs(array('admin', 'eplan@eplan')); $langs->loadLangs(array('admin', 'eplan@eplan'));