forked from Wavyzz/dolibarr
Fix: La fonction create_exdir ne fonctionnais pas sous windows
This commit is contained in:
@@ -1320,40 +1320,52 @@ function departement_rowid($db,$code, $pays_id)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Renvoi un chemin de classement r<>pertoire en fonction d'un id
|
||||
* Examples: 1->"0/0/1/", 15->"0/1/5/"
|
||||
* \param $num id <20> d<>composer
|
||||
*/
|
||||
function get_exdir($num)
|
||||
{
|
||||
$num = substr("000".$num, -3);
|
||||
return substr($num, 0,1).'/'.substr($num, 1,1).'/'.substr($num, 2,1).'/';
|
||||
$num = substr("000".$num, -3);
|
||||
return substr($num, 0,1).'/'.substr($num, 1,1).'/'.substr($num, 2,1).'/';
|
||||
}
|
||||
|
||||
/*
|
||||
* Cr<43>ation de r<>pertoire recursive
|
||||
*
|
||||
/**
|
||||
* \brief Cr<43>ation de r<>pertoire recursive
|
||||
* \param $dir R<>pertoire <20> cr<63>er
|
||||
* \return int < 0 si erreur, >= 0 si succ<63>s
|
||||
*/
|
||||
function create_exdir($dir)
|
||||
{
|
||||
$ccdir = '';
|
||||
$nberr=0;
|
||||
$nbcreated=0;
|
||||
|
||||
$cdir = explode("/",substr($dir,1));
|
||||
|
||||
for ($i = 0 ; $i < sizeof($cdir) ; $i++)
|
||||
{
|
||||
$ccdir .= "/".$cdir[$i];
|
||||
|
||||
if (! file_exists($ccdir))
|
||||
{
|
||||
umask(0);
|
||||
if (! @mkdir($ccdir, 0755))
|
||||
{
|
||||
dolibarr_syslog("create_exdir Erreur: Le r<EFBFBD>pertoire '$ccdir' n'existe pas et Dolibarr n'a pu le cr<EFBFBD>er.");
|
||||
}
|
||||
else
|
||||
{
|
||||
dolibarr_syslog("create_exdir Le r<EFBFBD>pertoire '$ccdir' created");
|
||||
}
|
||||
}
|
||||
}
|
||||
$ccdir = '';
|
||||
$cdir = explode("/",$dir);
|
||||
for ($i = 0 ; $i < sizeof($cdir) ; $i++)
|
||||
{
|
||||
if ($i > 0) $ccdir .= '/'.$cdir[$i];
|
||||
else $ccdir = $cdir[$i];
|
||||
if (eregi("^.:$",$ccdir,$regs)) continue; // Si chemin Windows incomplet, on poursuit par rep suivant
|
||||
|
||||
//print "${ccdir}<br>\n";
|
||||
if ($ccdir && ! file_exists($ccdir))
|
||||
{
|
||||
umask(0);
|
||||
if (! @mkdir($ccdir, 0755))
|
||||
{
|
||||
dolibarr_syslog("functions.inc.php::create_exdir Erreur: Le r<EFBFBD>pertoire '$ccdir' n'existe pas et Dolibarr n'a pu le cr<EFBFBD>er.");
|
||||
$nberr++;
|
||||
}
|
||||
else
|
||||
{
|
||||
dolibarr_syslog("functions.inc.php::create_exdir R<EFBFBD>pertoire '$ccdir' created");
|
||||
$nbcreated++;
|
||||
}
|
||||
}
|
||||
}
|
||||
return ($nberr ? -$nberr : $nbcreated);
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user