$emode = array_key_exists("emode", $_REQUEST) ? $_REQUEST["emode"] : 0; $action = array_key_exists("formsubmit", $_REQUEST) ? $_REQUEST["formsubmit"] : ''; $cSet = array_key_exists("cset", $_REQUEST) ? $_REQUEST["cset"] : ''; $schema = array_key_exists("schema", $_REQUEST) ? $_REQUEST["schema"] : 1; $dwcaManager = new DwcArchiverOccurrence(); $includeDets = 1; $includeImgs = 1; $redactLocalities = 1; if ($action) { if (!array_key_exists('dets', $_POST)) { $includeDets = 0; $dwcaManager->setIncludeDets(0); } if (!array_key_exists('imgs', $_POST)) { $includeImgs = 0; $dwcaManager->setIncludeImgs(0); } if (!array_key_exists('redact', $_POST)) { $redactLocalities = 0; $dwcaManager->setRedactLocalities(0); } $dwcaManager->setTargetPath($serverRoot . (substr($serverRoot, -1) == '/' ? '' : '/') . 'collections/datasets/dwc/'); } $isEditor = 0; if ($isAdmin || array_key_exists("CollAdmin", $userRights) && in_array($collId, $userRights["CollAdmin"])) { $isEditor = 1; } $collArr = array(); if ($collId) { $dwcaManager->setCollArr($collId); $collArr = $dwcaManager->getCollArr();
public function exportDataset($dsid) { //Get occurrence records $zip = array_key_exists('zip', $_POST) ? $_POST['zip'] : 0; $format = $_POST['format']; $extended = array_key_exists('extended', $_POST) ? $_POST['extended'] : 0; $redactLocalities = 1; $rareReaderArr = array(); if ($IS_ADMIN || array_key_exists("CollAdmin", $userRights)) { $redactLocalities = 0; } elseif (array_key_exists("RareSppAdmin", $userRights) || array_key_exists("RareSppReadAll", $userRights)) { $redactLocalities = 0; } else { if (array_key_exists('CollEditor', $userRights)) { $rareReaderArr = $userRights['CollEditor']; } if (array_key_exists('RareSppReader', $userRights)) { $rareReaderArr = array_unique(array_merge($rareReaderArr, $userRights['RareSppReader'])); } } $dwcaHandler = new DwcArchiverOccurrence(); $dwcaHandler->setCharSetOut($cSet); $dwcaHandler->setSchemaType($schema); $dwcaHandler->setExtended($extended); $dwcaHandler->setDelimiter($format); $dwcaHandler->setVerbose(0); $dwcaHandler->setRedactLocalities($redactLocalities); if ($rareReaderArr) { $dwcaHandler->setRareReaderArr($rareReaderArr); } $occurManager = new OccurrenceManager(); $dwcaHandler->setCustomWhereSql($occurManager->getSqlWhere()); $outputFile = null; if ($zip) { //Ouput file is a zip file $includeIdent = array_key_exists('identifications', $_POST) ? 1 : 0; $dwcaHandler->setIncludeDets($includeIdent); $images = array_key_exists('images', $_POST) ? 1 : 0; $dwcaHandler->setIncludeImgs($images); $outputFile = $dwcaHandler->createDwcArchive('webreq'); } else { //Output file is a flat occurrence file (not a zip file) $outputFile = $dwcaHandler->getOccurrenceFile(); } //ob_start(); $contentDesc = ''; if ($schema == 'dwc') { $contentDesc = 'Darwin Core '; } else { $contentDesc = 'Symbiota '; } $contentDesc .= 'Occurrence '; if ($zip) { $contentDesc .= 'Archive '; } $contentDesc .= 'File'; header('Content-Description: ' . $contentDesc); if ($zip) { header('Content-Type: application/zip'); } elseif ($format == 'csv') { header('Content-Type: text/csv; charset=' . $charset); } else { header('Content-Type: text/html; charset=' . $charset); } header('Content-Disposition: attachment; filename=' . basename($outputFile)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($outputFile)); ob_clean(); flush(); //od_end_clean(); readfile($outputFile); unlink($outputFile); }
$isEditor = true; } if ($isEditor) { $processingStatus = array_key_exists('ps', $_REQUEST) ? $_REQUEST['ps'] : ''; $customField1 = array_key_exists('cf1', $_POST) ? $_POST['cf1'] : ''; $customField2 = array_key_exists('cf2', $_POST) ? $_POST['cf2'] : ''; $dwcaHandler = new DwcArchiverOccurrence(); $dwcaHandler->setCollArr($collid); $dwcaHandler->setCharSetOut('UTF-8'); $dwcaHandler->setSchemaType('coge'); $dwcaHandler->setExtended(false); $dwcaHandler->setDelimiter('csv'); $dwcaHandler->setVerbose(0); $dwcaHandler->setRedactLocalities(0); $dwcaHandler->setIncludeDets(0); $dwcaHandler->setIncludeImgs(0); $dwcaHandler->addCondition('decimallatitude', 'NULL'); $dwcaHandler->addCondition('decimallongitude', 'NULL'); $dwcaHandler->addCondition('catalognumber', 'NOTNULL'); $dwcaHandler->addCondition('locality', 'NOTNULL'); if ($processingStatus) { $dwcaHandler->addCondition('processingstatus', 'EQUALS', $processingStatus); } if ($customField1) { $dwcaHandler->addCondition($customField1, $_POST['ct1'], $_POST['cv1']); } if ($customField2) { $dwcaHandler->addCondition($customField2, $_POST['ct2'], $_POST['cv2']); } //Set GeoLocate CoGe variables $dwcaHandler->setGeolocateVariables(array('cogecomm' => $_POST['cogecomm'], 'cogename' => $_POST['cogename'], 'cogedescr' => $_POST['cogedescr']));
$stArrSearchJson = str_replace("%apos;", "'", $stArrSearchJson); $collStArr = json_decode($stArrCollJson, true); $searchStArr = json_decode($stArrSearchJson, true); $stArr = array_merge($searchStArr, $collStArr); $occurManager->setSearchTermsArr($stArr); } if ($schema == "backup") { $collid = $_POST["collid"]; if ($collid && is_numeric($collid)) { //check permissions due to sensitive localities not being redacted if ($isAdmin || array_key_exists("CollAdmin", $userRights) && in_array($collid, $userRights["CollAdmin"])) { $dwcaHandler->setSchemaType('backup'); $dwcaHandler->setCharSetOut($cSet); $dwcaHandler->setVerbose(0); $dwcaHandler->setIncludeDets(1); $dwcaHandler->setIncludeImgs(1); $dwcaHandler->setRedactLocalities(0); $dwcaHandler->setCollArr($collid); $archiveFile = $dwcaHandler->createDwcArchive(); if ($archiveFile) { //ob_start(); header('Content-Description: Symbiota Occurrence Backup File (DwC-Archive data package)'); header('Content-Type: application/zip'); header('Content-Disposition: attachment; filename=' . basename($archiveFile)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($archiveFile)); //od_end_clean(); readfile($archiveFile);
} if (isset($tok[1]) && $tok[1]) { $valueArr = explode(',', $tok[1]); } if ($valueArr) { foreach ($valueArr as $v) { $dwcaHandler->addCondition($field, $cond, $v); } } else { $dwcaHandler->addCondition($field, $cond); } } } } $dwcaHandler->setIncludeDets($includeDets); $dwcaHandler->setIncludeImgs($includeImgs); $archiveFile = $dwcaHandler->createDwcArchive('webreq'); if ($archiveFile) { //ob_start(); header('Content-Description: DwC-A File Transfer'); header('Content-Type: application/zip'); header('Content-Disposition: attachment; filename=' . basename($archiveFile)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($archiveFile)); ob_clean(); flush(); //od_end_clean(); readfile($archiveFile);
<?php include_once '../../config/symbini.php'; include_once $serverRoot . '/classes/DwcArchiverOccurrence.php'; $collStr = $argv[1]; $serverDomain = $argv[2]; $includeDets = 1; $includeImgs = 1; $redactLocalities = 1; if ($argc > 3 && is_numeric($argv[3])) { $includeDets = $argv[3]; if ($argc > 4 && is_numeric($argv[4])) { $includeImgs = $argv[4]; if ($argc > 5 && is_numeric($argv[5])) { $redactLocalities = $argv[5]; } } } if ($collStr) { $dwcaManager = new DwcArchiverOccurrence(); $dwcaManager->setIncludeDets($includeDets); $dwcaManager->setIncludeImgs($includeImgs); $dwcaManager->setRedactLocalities($redactLocalities); $dwcaManager->setServerDomain($serverDomain); $dwcaManager->setTargetPath($serverRoot . (substr($serverRoot, -1) == '/' ? '' : '/') . 'collections/datasets/dwc/'); $dwcaManager->setVerbose(0); $collArr = explode(',', $collStr); $dwcaManager->batchCreateDwca($collArr); }