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 à décomposer
*/
function get_exdir($num) function get_exdir($num)
{ {
$num = substr("000".$num, -3); $num = substr("000".$num, -3);
return substr($num, 0,1).'/'.substr($num, 1,1).'/'.substr($num, 2,1).'/'; return substr($num, 0,1).'/'.substr($num, 1,1).'/'.substr($num, 2,1).'/';
} }
/* /**
* Création de répertoire recursive * \brief Création de répertoire recursive
* * \param $dir Répertoire à créer
* \return int < 0 si erreur, >= 0 si succès
*/ */
function create_exdir($dir) function create_exdir($dir)
{ {
$nberr=0;
$nbcreated=0;
$ccdir = ''; $ccdir = '';
$cdir = explode("/",$dir);
$cdir = explode("/",substr($dir,1));
for ($i = 0 ; $i < sizeof($cdir) ; $i++) for ($i = 0 ; $i < sizeof($cdir) ; $i++)
{ {
$ccdir .= "/".$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
if (! file_exists($ccdir)) //print "${ccdir}<br>\n";
if ($ccdir && ! file_exists($ccdir))
{ {
umask(0); umask(0);
if (! @mkdir($ccdir, 0755)) if (! @mkdir($ccdir, 0755))
{ {
dolibarr_syslog("create_exdir Erreur: Le répertoire '$ccdir' n'existe pas et Dolibarr n'a pu le créer."); dolibarr_syslog("functions.inc.php::create_exdir Erreur: Le répertoire '$ccdir' n'existe pas et Dolibarr n'a pu le créer.");
$nberr++;
} }
else else
{ {
dolibarr_syslog("create_exdir Le répertoire '$ccdir' created"); dolibarr_syslog("functions.inc.php::create_exdir Répertoire '$ccdir' created");
$nbcreated++;
} }
} }
} }
return ($nberr ? -$nberr : $nbcreated);
} }
?> ?>