2
0
forked from Wavyzz/dolibarr

Fix: La fonction create_exdir ne fonctionnais pas sous windows

This commit is contained in:
Laurent Destailleur
2005-04-02 13:44:44 +00:00
parent 37f9af1568
commit 02980093ee

View File

@@ -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);
}
?>