示例#1
0
 /**
  * Upload the revised version of an article.
  * @param $authorSubmission object
  * @param $request object
  */
 function uploadRevisedVersion($authorSubmission, $request)
 {
     import('classes.file.ArticleFileManager');
     $articleFileManager = new ArticleFileManager($authorSubmission->getId());
     $authorSubmissionDao =& DAORegistry::getDAO('AuthorSubmissionDAO');
     $fileName = 'upload';
     if ($articleFileManager->uploadedFileExists($fileName)) {
         HookRegistry::call('AuthorAction::uploadRevisedVersion', array(&$authorSubmission));
         if ($authorSubmission->getRevisedFileId() != null) {
             $fileId = $articleFileManager->uploadEditorDecisionFile($fileName, $authorSubmission->getRevisedFileId());
         } else {
             $fileId = $articleFileManager->uploadEditorDecisionFile($fileName);
         }
     }
     if (isset($fileId) && $fileId != 0) {
         $authorSubmission->setRevisedFileId($fileId);
         $authorSubmissionDao->updateAuthorSubmission($authorSubmission);
         $user =& $request->getUser();
         $journal =& $request->getJournal();
         import('classes.mail.ArticleMailTemplate');
         $email = new ArticleMailTemplate($authorSubmission, 'REVISED_VERSION_NOTIFY');
         if ($email->isEnabled()) {
             $isEditor = false;
             $assignedSectionEditors = $email->toAssignedEditingSectionEditors($authorSubmission->getId());
             $editor = array_shift($assignedSectionEditors);
             if (!$editor) {
                 $isEditor = true;
                 $assignedEditors = $email->toAssignedEditors($authorSubmission->getId());
                 $editor = array_shift($assignedEditors);
             }
             if (!$editor) {
                 $email->addRecipient($journal->getSetting('contactEmail'), $journal->getSetting('contactName'));
                 $editorName = $journal->getSetting('contactName');
             } else {
                 $editorName = $editor->getEditorFullName();
             }
             $paramArray = array('editorialContactName' => $editorName, 'articleTitle' => $authorSubmission->getLocalizedTitle(), 'authorName' => $user->getFullName(), 'submissionUrl' => $request->url(null, $isEditor ? 'editor' : 'sectionEditor', 'submissionReview', $authorSubmission->getId()), 'editorialContactSignature' => $journal->getSetting('contactName') . "\n" . $journal->getLocalizedTitle());
             $email->assignParams($paramArray);
             $email->send($request);
         }
         // Add log entry
         import('classes.article.log.ArticleLog');
         ArticleLog::logEvent($request, $authorSubmission, ARTICLE_LOG_AUTHOR_REVISION, 'log.author.documentRevised', array('authorName' => $user->getFullName(), 'fileId' => $fileId));
     }
 }