|
|
@@ -394,4 +394,43 @@ class Utils |
|
|
|
} |
|
|
|
return $reminders; |
|
|
|
} |
|
|
|
|
|
|
|
public function removeDir($dir) { |
|
|
|
$files = array_diff(scandir($dir), array('.','..')); |
|
|
|
foreach ($files as $file) { |
|
|
|
(is_dir("$dir/$file")) ? $this->removeDir("$dir/$file") : unlink("$dir/$file"); |
|
|
|
} |
|
|
|
return rmdir($dir); |
|
|
|
} |
|
|
|
|
|
|
|
function folderToZip($folder, &$zipFile, $subfolder = null) { |
|
|
|
if ($zipFile == null) { |
|
|
|
// no resource given, exit |
|
|
|
return false; |
|
|
|
} |
|
|
|
// we check if $folder has a slash at its end, if not, we append one |
|
|
|
$tabFolder = str_split($folder) ; |
|
|
|
$tabSubFolder = str_split($subfolder) ; |
|
|
|
$folder .= end($tabFolder) == "/" ? "" : "/"; |
|
|
|
$subfolder .= end($tabSubFolder) == "/" ? "" : "/"; |
|
|
|
// we start by going through all files in $folder |
|
|
|
$handle = opendir($folder); |
|
|
|
while ($f = readdir($handle)) { |
|
|
|
if ($f != "." && $f != "..") { |
|
|
|
if (is_file($folder . $f)) { |
|
|
|
// if we find a file, store it |
|
|
|
// if we have a subfolder, store it there |
|
|
|
if ($subfolder != null) |
|
|
|
$zipFile->addFile($folder . $f, $subfolder . $f); |
|
|
|
else |
|
|
|
$zipFile->addFile($folder . $f); |
|
|
|
} elseif (is_dir($folder . $f)) { |
|
|
|
// if we find a folder, create a folder in the zip |
|
|
|
$zipFile->addEmptyDir($f); |
|
|
|
// and call the function again |
|
|
|
folderToZip($folder . $f, $zipFile, $f); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |