]> git.mjollnir.org Git - moodle.git/commitdiff
Internal zipping broken on win32 MDL-7105 ; we are now using the new method to specif...
authorskodak <skodak>
Thu, 19 Oct 2006 22:13:03 +0000 (22:13 +0000)
committerskodak <skodak>
Thu, 19 Oct 2006 22:13:03 +0000 (22:13 +0000)
lib/moodlelib.php

index 528e91fb0a7c61cdf6926331fde98444508edd18..2227280f1eaca1060cfc7b96bfe3bfaa98e9f162 100644 (file)
@@ -6114,8 +6114,18 @@ function zip_files ($originalfiles, $destination) {
     if (empty($CFG->zip)) {    // Use built-in php-based zip function
 
         include_once("$CFG->libdir/pclzip/pclzip.lib.php");
+        //rewrite filenames because the old method with PCLZIP_OPT_REMOVE_PATH does not work under win32
+        $zipfiles = array();
+        $start = strlen($origpath)+1;
+        foreach($files as $file) {
+            $tf = array();
+            $tf[PCLZIP_ATT_FILE_NAME] = $file;
+            $tf[PCLZIP_ATT_FILE_NEW_FULL_NAME] = substr($file, $start);
+            $zipfiles[] = $tf;
+        }
+        //create the archive
         $archive = new PclZip(cleardoubleslashes("$destpath/$destfilename"));
-        if (($list = $archive->create($files, PCLZIP_OPT_REMOVE_PATH,$origpath) == 0)) {
+        if (($list = $archive->create($zipfiles) == 0)) {
             notice($archive->errorInfo(true));
             return false;
         }