public function downloadExportAction() { $this->_requireAccess('editor.jobs', 'index'); $job = $this->_getJob(); $export = new Editor_Models_Export(); $export->setSettings($job->getParams()); $fileDetails = $export->getExportFileDetails(); $filePath = $export->getExportFilesDirPath() . $job->info; $this->getHelper('file')->sendFile($fileDetails['fileName'], $filePath, $fileDetails['mimeType']); }
public function exportAction() { if (!$this->getRequest()->isPost()) { return $this->_forward('index', 'index'); } $user = $this->getCurrentUser(); $export = new Editor_Models_Export(); $export->set('userId', $user['id']); $export->set('format', $this->getRequest()->getPost('format')); $export->set('type', $this->getRequest()->getPost('type')); $export->set('maxDepth', $this->getRequest()->getPost('maxDepth')); // Currently this applies only for rtf export. $outputFileName = $this->getRequest()->getPost('fileName'); if (empty($outputFileName)) { $export->set('outputFileName', uniqid()); } else { $export->set('outputFileName', $outputFileName); } $fieldsToExport = $this->getRequest()->getPost('fieldsToExport'); if (empty($fieldsToExport)) { $export->set('fieldsToExport', array()); } else { $export->set('fieldsToExport', explode(',', $this->getRequest()->getPost('fieldsToExport'))); } switch ($export->get('type')) { case 'concept': $export->set('conceptUuid', $this->getRequest()->getPost('additionalData')); // We have the uuid in additionalData. break; case 'search': $searchFormData = Zend_Json::decode($this->getRequest()->getPost('additionalData'), Zend_Json::TYPE_ARRAY); // We have the json encoded search form data in additionalData. $searchFormData = $this->_fixJsSerializedArrayData('conceptScheme', $searchFormData); $searchFormData = $this->_fixJsSerializedArrayData('allowedConceptScheme', $searchFormData); $userForSearch = OpenSKOS_Db_Table_Users::requireById($searchFormData['user']); $userSearchOptions = $userForSearch->getSearchOptions($user['id'] != $userForSearch['id']); $export->set('searchOptions', Editor_Forms_Search::mergeSearchOptions($searchFormData, $userSearchOptions)); break; } if ($export->isTimeConsumingExport()) { $export->exportWithBackgroundJob(); $this->_redirect($this->getRequest()->getPost('currentUrl')); } else { $fileContent = $export->exportToString(); $fileDetails = $export->getExportFileDetails(); $this->getHelper('file')->sendFileContent($fileDetails['fileName'], $fileContent, $fileDetails['mimeType']); } }
try { foreach ($harvester as $page => $records) { echo "page " . ($page + 1) . ":\n"; foreach ($records as $r => $record) { echo " record " . ($r + 1) . ": {$record->identifier}\n"; } } $job->finish()->save(); } catch (OpenSKOS_Oai_Pmh_Harvester_Exception $e) { fwrite(STDERR, $job->id . ': ' . $e->getMessage() . "\n"); $job->error($e->getMessage())->finish()->save(); } break; case OpenSKOS_Db_Table_Row_Job::JOB_TASK_EXPORT: $job->start()->save(); $export = new Editor_Models_Export(); $export->setSettings($job->getParams()); try { $resultFilePath = $export->exportToFile(); $model = new OpenSKOS_Db_Table_Jobs(); // Gets new DB object to prevent connection time out. $job = $model->find($job->id)->current(); // Gets new DB object to prevent connection time out. $job->setInfo($resultFilePath); $job->finish()->save(); } catch (Zend_Exception $e) { $model = new OpenSKOS_Db_Table_Jobs(); // Gets new DB object to prevent connection time out. $job = $model->find($job->id)->current(); // Gets new DB object to prevent connection time out. fwrite(STDERR, $job->id . ': ' . $e->getMessage() . "\n");