$modulename = preg_replace('/\\-[\\d]+\\.[\\d]+.*$/', '', $modulename); // Search dir $modulename $modulenamedir = $conf->admin->dir_temp . '/' . $tmpdir . '/' . $modulename; //var_dump($modulenamedir); if (!dol_is_dir($modulenamedir)) { $modulenamedir = $conf->admin->dir_temp . '/' . $tmpdir . '/htdocs/' . $modulename; //var_dump($modulenamedir); if (!dol_is_dir($modulenamedir)) { setEventMessage($langs->trans("ErrorModuleFileSeemsToHaveAWrongFormat"), 'errors'); $error++; } } if (!$error) { //var_dump($dirins); @dol_delete_dir_recursive($dirins . '/' . $modulename); $result = dolCopyDir($modulenamedir, $dirins . '/' . $modulename, '0444', 1); if ($result <= 0) { setEventMessage($langs->trans("ErrorFailedToCopy"), 'errors'); $error++; } } } } else { $error++; } } if (!$error) { setEventMessage($langs->trans("SetupIsReadyForUse")); } } /*
/** * Copy a dir to another dir. * * @param string $srcfile Source file (a directory) * @param string $destfile Destination file (a directory) * @param int $newmask Mask for new file (0 by default means $conf->global->MAIN_UMASK). Example: '0666' * @param int $overwriteifexists Overwrite file if exists (1 by default) * @return int <0 if error, 0 if nothing done (dest dir already exists and overwriteifexists=0), >0 if OK * @see dol_copy */ function dolCopyDir($srcfile, $destfile, $newmask, $overwriteifexists) { global $conf; $result = 0; dol_syslog("files.lib.php::dolCopyr srcfile=" . $srcfile . " destfile=" . $destfile . " newmask=" . $newmask . " overwriteifexists=" . $overwriteifexists); if (empty($srcfile) || empty($destfile)) { return -1; } $destexists = dol_is_dir($destfile); if (!$overwriteifexists && $destexists) { return 0; } $srcfile = dol_osencode($srcfile); $destfile = dol_osencode($destfile); // recursive function to copy // all subdirectories and contents: if (is_dir($srcfile)) { $dir_handle = opendir($srcfile); while ($file = readdir($dir_handle)) { if ($file != "." && $file != "..") { if (is_dir($srcfile . "/" . $file)) { if (!is_dir($destfile . "/" . $file)) { umask(0); $dirmaskdec = octdec($newmask); if (empty($newmask) && !empty($conf->global->MAIN_UMASK)) { $dirmaskdec = octdec($conf->global->MAIN_UMASK); } $dirmaskdec |= octdec('0200'); // Set w bit required to be able to create content for recursive subdirs files dol_mkdir($destfile . "/" . $file, '', decoct($dirmaskdec)); } $result = dolCopyDir($srcfile . "/" . $file, $destfile . "/" . $file, $newmask, $overwriteifexists); } else { $result = dol_copy($srcfile . "/" . $file, $destfile . "/" . $file, $newmask, $overwriteifexists); } if ($result < 0) { break; } } } closedir($dir_handle); } else { $result = dol_copy($srcfile, $destfile, $newmask, $overwriteifexists); } return $result; }