setPageTitle(WT_I18N::translate('Download GEDCOM')) ->restrictAccess(Auth::isManager()); // Validate user parameters $action = WT_Filter::get('action', 'download'); $convert = WT_Filter::get('convert', 'yes|no', 'no'); $zip = WT_Filter::get('zip', 'yes|no', 'no'); $conv_path = WT_Filter::get('conv_path'); $privatize_export = WT_Filter::get('privatize_export', 'none|visitor|user|gedadmin'); if ($action == 'download') { $exportOptions = array(); $exportOptions['privatize'] = $privatize_export; $exportOptions['toANSI'] = $convert; $exportOptions['path'] = $conv_path; } $fileName = WT_GEDCOM; if ($action == "download" && $zip == "yes") { require WT_ROOT.'library/pclzip.lib.php'; $temppath = WT_Site::preference('INDEX_DIRECTORY') . "tmp/"; $zipname = "dl" . date("YmdHis") . $fileName . ".zip"; $zipfile = WT_Site::preference('INDEX_DIRECTORY') . $zipname; $gedname = $temppath . $fileName; $removeTempDir = false; if (!is_dir($temppath)) { $res = mkdir($temppath); if ($res !== true) { echo "Error : Could not create temporary path!"; exit; } $removeTempDir = true; } $gedout = fopen($gedname, "w"); export_gedcom($GEDCOM, $gedout, $exportOptions); fclose($gedout); $comment = "Created by ".WT_WEBTREES." ".WT_VERSION." on " . date("r") . "."; $archive = new PclZip($zipfile); $v_list = $archive->create($gedname, PCLZIP_OPT_COMMENT, $comment, PCLZIP_OPT_REMOVE_PATH, $temppath); if ($v_list == 0) echo "Error : " . $archive->errorInfo(true); else { unlink($gedname); if ($removeTempDir) rmdir($temppath); header('Location: '.WT_SERVER_NAME.WT_SCRIPT_PATH."downloadbackup.php?fname=".$zipname); exit; } exit; } if ($action == "download") { Zend_Session::writeClose(); header('Content-Type: text/plain; charset=UTF-8'); // We could open "php://compress.zlib" to create a .gz file or "php://compress.bzip2" to create a .bz2 file $gedout = fopen('php://output', 'w'); if (strtolower(substr($fileName, -4, 4))!='.ged') { $fileName.='.ged'; } header('Content-Disposition: attachment; filename="'.$fileName.'"'); export_gedcom(WT_GEDCOM, $gedout, $exportOptions); fclose($gedout); exit; } $controller->pageHeader(); ?>