function zip() { global $dir; if (!MRights::can("zip")) { $this->view->authError("zip"); return; } $zipName = MRequest::clean("zipname", null); $zipName = stripEnd(".zip", $zipName); $zipName = stripEnd(".ZIP", $zipName); if ($zipName) { $zipName .= ".zip"; } else { $zipName = "archive_" . date("Y-m-d-H-i") . ".zip"; } $archive = new PclZip(_FM_TMP_DIR . DS . $zipName); $selectedFiles = $_REQUEST["selectedFiles"]; $error = null; $status = $archive->add($dir, PCLZIP_OPT_REMOVE_PATH, $dir); if (file_exists($dir . DS . $zipName)) { $error = MText::_("archive_exists"); MFile::remove(_FM_TMP_DIR . DS . $zipName); } else { MFile::move(_FM_TMP_DIR . DS . $zipName, $dir); } foreach ($status as $item) { if ($item['status'] != "ok" && $item['status'] != "filtered") { $error .= ' - <b>' . $item['stored_filename'] . ":</b> " . MText::_($item['status']) . '<br>'; } } if ($error) { $this->view->add2Content("_fmError" . $error); } else { $this->view->add2Content("ok"); } }
function zip() { global $dir; if (!MRights::can("zip")) { $this->popupError("zip"); return; } $zipName = MRequest::clean("zipname", null); $zipName = stripEnd(".zip", $zipName); $zipName = stripEnd(".ZIP", $zipName); if ($zipName) { $zipName .= ".zip"; } else { $zipName = "archive_" . date("Y-m-d-H-i") . ".zip"; } $archive = new PclZip($dir . DS . $zipName); $selectedFiles = $_REQUEST["selectedFiles"]; $error = null; foreach ($selectedFiles as $selectedFile) { $selectedFile = _START_FOLDER . urldecode($selectedFile); $selectedFile = MValidate::path($selectedFile); $info = MFile::info($selectedFile); $archive->add($selectedFile, PCLZIP_OPT_REMOVE_PATH, $dir); } if ($error) { $this->view->add2Content('<script noCache="1">newDarkenPopup(\'error\',mText.error,\'' . $error . '\',500,250);</script>'); } $this->view->add2Content(fmGetFiles()); }