Exemple #1
0
 /**
  * Save changes to the supplementary file.
  * @return int the supplementary file ID
  */
 function execute($fileName = null)
 {
     import("file.PaperFileManager");
     $paperFileManager = new PaperFileManager($this->paper->getPaperId());
     $suppFileDao =& DAORegistry::getDAO('SuppFileDAO');
     $fileName = isset($fileName) ? $fileName : 'uploadSuppFile';
     if (isset($this->suppFile)) {
         $suppFile =& $this->suppFile;
         // Upload file, if file selected.
         if ($paperFileManager->uploadedFileExists($fileName)) {
             $paperFileManager->uploadSuppFile($fileName, $suppFile->getFileId());
             import('search.PaperSearchIndex');
             PaperSearchIndex::updateFileIndex($this->paper->getPaperId(), PAPER_SEARCH_SUPPLEMENTARY_FILE, $suppFile->getFileId());
         }
         // Index metadata
         PaperSearchIndex::indexSuppFileMetadata($suppFile);
         // Update existing supplementary file
         $this->setSuppFileData($suppFile);
         $suppFileDao->updateSuppFile($suppFile);
     } else {
         // Upload file, if file selected.
         if ($paperFileManager->uploadedFileExists($fileName)) {
             $fileId = $paperFileManager->uploadSuppFile($fileName);
             import('search.PaperSearchIndex');
             PaperSearchIndex::updateFileIndex($this->paper->getPaperId(), PAPER_SEARCH_SUPPLEMENTARY_FILE, $fileId);
         } else {
             $fileId = 0;
         }
         // Insert new supplementary file
         $suppFile = new SuppFile();
         $suppFile->setPaperId($this->paper->getPaperId());
         $suppFile->setFileId($fileId);
         $this->setSuppFileData($suppFile);
         $suppFileDao->insertSuppFile($suppFile);
         $this->suppFileId = $suppFile->getId();
     }
     return $this->suppFileId;
 }
 /**
  * Index all paper files (supplementary and galley).
  * @param $paper Paper
  */
 function indexPaperFiles(&$paper)
 {
     // Index supplementary files
     $fileDao =& DAORegistry::getDAO('SuppFileDAO');
     $files =& $fileDao->getSuppFilesByPaper($paper->getId());
     foreach ($files as $file) {
         if ($file->getFileId()) {
             PaperSearchIndex::updateFileIndex($paper->getId(), PAPER_SEARCH_SUPPLEMENTARY_FILE, $file->getFileId());
         }
         PaperSearchIndex::indexSuppFileMetadata($file);
     }
     unset($files);
     // Index galley files
     $fileDao =& DAORegistry::getDAO('PaperGalleyDAO');
     $files =& $fileDao->getGalleysByPaper($paper->getId());
     foreach ($files as $file) {
         if ($file->getFileId()) {
             PaperSearchIndex::updateFileIndex($paper->getId(), PAPER_SEARCH_GALLEY_FILE, $file->getFileId());
         }
     }
 }