diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 36350e1fb4c8be2cb7896e40bd5ffdafecd511c4..9a20d25f431749e6d30d6206f0202954d1610002 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -226,12 +226,17 @@ function dol_getprefix() * To link to a module file from a core file, then this function can be used * * @param string $relpath Relative path to file (Ie: mydir/myfile, ../myfile, ...) + * @param string $classname Class name * @return int false if include fails. */ -function dol_include_once($relpath) +function dol_include_once($relpath, $classname='') { global $conf,$langs,$user,$mysoc; // Other global var must be retreived with $GLOBALS['var'] - return @include_once(dol_buildpath($relpath)); + if (! empty($classname) && ! class_exists($classname)) { + return @include dol_buildpath($relpath); + } else { + return @include_once dol_buildpath($relpath); + } } @@ -242,7 +247,7 @@ function dol_include_once($relpath) * @param int $type 0=Used for a Filesystem path, 1=Used for an URL path (output relative), 2=Used for an URL path (output full path) * @return string Full filsystem path (if mode=0), Full url path (if mode=1) */ -function dol_buildpath($path,$type=0) +function dol_buildpath($path, $type=0) { if (empty($type)) // For a filesystem path { @@ -270,7 +275,7 @@ function dol_buildpath($path,$type=0) } } } - if ($type == 2) + else if ($type == 2) { $res = DOL_MAIN_URL_ROOT.$path; // Standard value if (defined('DOL_URL_ROOT_ALT') && DOL_URL_ROOT_ALT) // We check only if alternate feature is used