示例#1
0
                $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"));
    }
}
/*
示例#2
0
/**
 * 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;
}