Now backup and restore are using central zip & unzip functions.
authorstronk7 <stronk7>
Sat, 16 Oct 2004 17:34:56 +0000 (17:34 +0000)
committerstronk7 <stronk7>
Sat, 16 Oct 2004 17:34:56 +0000 (17:34 +0000)
Merged from MOODLE_14_STABLE

backup/backuplib.php
backup/restorelib.php

index 6b580966cfd7a250c8cb55d81c4806ea33ac3ece..66fe9f5d82439ac25d1c41c1edadf44a65103889 100644 (file)
         $basedir = cleardoubleslashes($CFG->dataroot."/temp/backup/".$preferences->backup_unique_code);
         //Backup zip file name
         $name = $preferences->backup_name;
-        //List base_dir files and directories
+        //List of files and directories
         $filelist = list_directories_and_files ($basedir);
 
-        if (empty($CFG->zip)) {    // Use built-in php-based zip function
-            //echo "<br />Using pclzip";                                    //Debug
-            $files = array();
-            foreach ($filelist as $file) {
-                //If directory, append "/"
-                //Commented. Not needed wit version 2.0 of pclzip !!
-                //if (is_dir($basedir."/".$file)) {
-                //    $file = $file."/";
-                //}
-                //Include into array
-                //echo "<br />Adding file/dir ".$file;                       //Debug
-                $files[] = cleardoubleslashes($basedir."/".$file);
-            }
-            include_once("$CFG->dirroot/lib/pclzip/pclzip.lib.php");
-            //include_once("$CFG->dirroot/lib/pclzip/pclerror.lib.php");   //Debug
-            //include_once("$CFG->dirroot/lib/pclzip/pcltrace.lib.php");   //Debug
-            //PclTraceOn(2);                                               //Debug
-            $archive = new PclZip(cleardoubleslashes("$basedir/$name"));
-            if (($list = $archive->create($files,PCLZIP_OPT_REMOVE_PATH,rtrim(cleardoubleslashes($basedir), "/"))) == 0) {
-                error($archive->errorInfo(true));
-                $status = false;
-            } 
-            //PclTraceDisplay();                                           //Debug
-            //PclTraceOff();                                               //Debug
-        } else {                   // Use external zip program
-            //echo "<br />Using external zip";                               //Debug
-            $files = "";
-            foreach ($filelist as $file) {
-                $files .= basename($file);
-                $files .= " ";
-            }
-            $command = "cd $basedir ; $CFG->zip -r $name $files";
-            //echo "<br />Executing command: ".$command;                     //Debug
-            $status = Exec($command);
+        //Convert them to full paths
+        foreach ($filelist as $file) {
+           $files[] = "$basedir/$file";
         }
 
-        //echo "<br />Status: ".$status;                                     //Debug
+        $status = zip_files($files, "$basedir/$name");
+
+        //echo "<br>Status: ".$status;                                     //Debug
         return $status;
 
     } 
index e118b86c410d7c5a239a017c9b0262d804059d81..8a62bdfb0197fc4ae63c4118428779d8ef184dd9 100644 (file)
@@ -5,27 +5,8 @@
     //It automatically uses pclzip or command line unzip
     function restore_unzip ($file) {
         
-        global $CFG;
-
-        $status = true;
-
-        if (empty($CFG->unzip)) {    // Use built-in php-based unzip function
-            include_once("$CFG->dirroot/lib/pclzip/pclzip.lib.php");
-            //include_once("$CFG->dirroot/lib/pclzip/pclerror.lib.php");    //Debug
-            //include_once("$CFG->dirroot/lib/pclzip/pcltrace.lib.php");    //Debug
-            //PclTraceOn(2);                                          //Debug
-            $archive = new PclZip(cleardoubleslashes($file));
-            if (!$list = $archive->extract(PCLZIP_OPT_PATH, cleardoubleslashes(dirname($file)))) {
-                $status = false;
-            }
-            //PclTraceDisplay();                                       //Debug
-            //PclTraceOff();                                           //Debug
-        } else {                     // Use external unzip program
-            $command = "cd ".dirname($file)."; $CFG->unzip -o ".basename($file);
-            Exec($command);
-        }
+        return unzip_file($file, '', false);
 
-        return $status;
     }
 
     //This function checks if moodle.xml seems to be a valid xml file