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']);
     }
 }
Example #3
0
     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");