Zipping files.

Ok under command line. Bad under pcl lib
This commit is contained in:
stronk7
2003-05-11 11:06:23 +00:00
parent 543009a54d
commit b294bc4b1d
2 changed files with 62 additions and 0 deletions
+7
View File
@@ -226,6 +226,13 @@
}
}
//Now, zip all the backup directory contents
if ($status) {
echo "<li>Zipping backup";
$status = backup_zip ($preferences,$moodle_home);
}
if (!$status) {
error ("An error has ocurred");
}
+55
View File
@@ -985,6 +985,61 @@
return $results;
}
//This function creates the zip file containing all the backup info
//moodle.xml, moddata, user_files, course_files.
//The zipped file is created in the backup directory and named with
//the "oficial" name of the backup
//It uses "pclzip" if available or system "zip" (unix only)
function backup_zip ($preferences,$moodle_home) {
global $CFG;
$status = true;
//Base dir where everything happens
$basedir = $CFG->dataroot."/temp/backup/".$preferences->backup_unique_code;
//Backup xip file name
$name = $preferences->backup_name;
//List base_dir files and directories
$filelist = list_directories_and_files ($basedir);
if (empty($CFG->zip)) { // Use built-in php-based zip function
$files = array();
foreach ($filelist as $file) {
// //If directory, append "/"
// if (is_dir($basedir."/".$file)) {
// $file = $file."/";
// }
//Include into array
$files[] = $basedir."/".$file;
}
include_once($moodle_home."/lib/pclzip/pclzip.lib.php");
$archive = new PclZip("$basedir/$name");
if (($list = $archive->create($files,PCLZIP_OPT_REMOVE_PATH,$basedir)) == 0) {
error($archive->errorInfo(true));
$status = false;
}
$list = $archive->listContent();
for ($i=0; $i<sizeof($list); $i++) {
for(reset($list[$i]); $key = key($list[$i]); next($list[$i])) {
echo "File $i / [$key] = ".$list[$i][$key]."<br>";
}
echo "<br>";
}
} else { // Use external zip program
$files = "";
foreach ($filelist as $file) {
$files .= basename($file);
$files .= " ";
}
$command = "cd $basedir ; $CFG->zip -r $name $files";
$status = Exec($command);
}
return $status;
}
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//This functions are used to copy any file or directory ($from_file)