/** * 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)); } }