/**
  * Internal function to return an ArticleFile object from a row.
  * @param $row array
  * @return ArticleFile
  */
 function &_returnArticleFileFromRow(&$row)
 {
     $articleFile = new ArticleFile();
     $articleFile->setFileId($row['file_id']);
     $articleFile->setSourceFileId($row['source_file_id']);
     $articleFile->setSourceRevision($row['source_revision']);
     $articleFile->setRevision($row['revision']);
     $articleFile->setArticleId($row['article_id']);
     $articleFile->setFileName($row['file_name']);
     $articleFile->setFileType($row['file_type']);
     $articleFile->setFileSize($row['file_size']);
     $articleFile->setOriginalFileName($row['original_file_name']);
     $articleFile->setType($row['type']);
     $articleFile->setAssocId($row['assoc_id']);
     $articleFile->setDateUploaded($this->datetimeFromDB($row['date_uploaded']));
     $articleFile->setDateModified($this->datetimeFromDB($row['date_modified']));
     $articleFile->setRound($row['round']);
     $articleFile->setViewable($row['viewable']);
     //%LP% set fedora information
     $articleFile->setFedoraNamespace($row['fedora_namespace']);
     $articleFile->setFedoraPid($row['fedora_pid']);
     $articleFile->setFedoraDsid($row['fedora_dsid']);
     HookRegistry::call('ArticleFileDAO::_returnArticleFileFromRow', array(&$articleFile, &$row));
     return $articleFile;
 }
 /**
  * Internal function to write the pdf of a published researt.
  * @param $sectionEditorSubmission SectionEditorSubmission
  * @return bool
  */
 function _publishResearch($sectionEditorSubmission)
 {
     $completionReport = $sectionEditorSubmission->getLastReportFile();
     if ($completionReport->getFileType() == "application/pdf") {
         $coverPath = SectionEditorAction::_generateCover($sectionEditorSubmission);
         if ($coverPath && $coverPath != '') {
             import('classes.lib.TCPDFMerger');
             $file2merge = array($coverPath . 'tempCover.pdf', $completionReport->getFilePath());
             $pdf = new TCPDFMerger();
             $pdf->setFiles($file2merge);
             $pdf->concat();
             $fileName = $sectionEditorSubmission->getProposalId() . '-Final_Technical_Report.pdf';
             $pdf->Output($coverPath . $fileName, "F");
             FileManager::deleteFile($coverPath . 'tempCover.pdf');
             if (file_exists($coverPath . $fileName)) {
                 //import('classes.article.ArticleFile');
                 $articleFileDao =& DAORegistry::getDAO('ArticleFileDAO');
                 $technicalReport = new ArticleFile();
                 $technicalReport->setArticleId($sectionEditorSubmission->getArticleId());
                 $technicalReport->setFileName($fileName);
                 $technicalReport->setFileType('application/pdf');
                 $technicalReport->setFileSize(filesize($coverPath . $fileName));
                 $technicalReport->setOriginalFileName($fileName);
                 $technicalReport->setType('public');
                 $technicalReport->setDateUploaded(Core::getCurrentDate());
                 $technicalReport->setDateModified(Core::getCurrentDate());
                 $fileId = $articleFileDao->insertArticleFile($technicalReport);
                 return $fileId;
             }
         }
     }
     return false;
 }
 /**
  * PRIVATE routine to copy an article file and add it to the database.
  * @param $url original filename/url of the file
  * @param $mimeType string the mime type of the file
  * @param $type string identifying type
  * @param $fileId int ID of an existing file to update
  * @return int the file ID (false if upload failed)
  */
 function handleCopy($url, $mimeType, $type, $fileId = null)
 {
     if (HookRegistry::call('ArticleFileManager::handleCopy', array(&$url, &$mimeType, &$type, &$fileId, &$result))) {
         return $result;
     }
     $articleFileDao =& DAORegistry::getDAO('ArticleFileDAO');
     $typePath = $this->typeToPath($type);
     $dir = $this->filesDir . $typePath . '/';
     if (!$fileId) {
         // Insert dummy file to generate file id FIXME?
         $dummyFile = true;
         $articleFile =& $this->generateDummyFile($this->article);
     } else {
         $dummyFile = false;
         $articleFile = new ArticleFile();
         $articleFile->setArticleId($this->articleId);
         $articleFile->setFileId($fileId);
         $articleFile->setDateUploaded(Core::getCurrentDate());
         $articleFile->setDateModified(Core::getCurrentDate());
     }
     $articleFile->setFileType($mimeType);
     $articleFile->setOriginalFileName(ArticleFileManager::truncateFileName(basename($url), 127));
     $articleFile->setType($typePath);
     $newFileName = $this->generateFilename($articleFile, $type, $articleFile->getOriginalFileName());
     if (!$this->copyFile($url, $dir . $newFileName)) {
         // Delete the dummy file we inserted
         $articleFileDao->deleteArticleFileById($articleFile->getFileId());
         return false;
     }
     $articleFile->setFileSize(filesize($dir . $newFileName));
     if ($dummyFile) {
         $articleFileDao->updateArticleFile($articleFile);
     } else {
         $articleFileDao->insertArticleFile($articleFile);
     }
     return $articleFile->getFileId();
 }
Example #4
0
 /**
  * Internal function to return an ArticleFile object from a row.
  * @param $row array
  * @return ArticleFile
  */
 function &_returnArticleFileFromRow(&$row)
 {
     $articleFile = new ArticleFile();
     $articleFile->setFileId($row['file_id']);
     $articleFile->setSourceFileId($row['source_file_id']);
     $articleFile->setArticleId($row['article_id']);
     $articleFile->setFileName($row['file_name']);
     $articleFile->setFileType($row['file_type']);
     $articleFile->setFileSize($row['file_size']);
     $articleFile->setOriginalFileName($row['original_file_name']);
     $articleFile->setType($row['type']);
     $articleFile->setAssocId($row['assoc_id']);
     $articleFile->setDateUploaded($this->datetimeFromDB($row['date_uploaded']));
     $articleFile->setDateModified($this->datetimeFromDB($row['date_modified']));
     $articleFile->setViewable($row['viewable']);
     HookRegistry::call('ArticleFileDAO::_returnArticleFileFromRow', array(&$articleFile, &$row));
     return $articleFile;
 }