00001 <?php
00002
00015
00016
00017
00018 import("submission.form.comment.CommentForm");
00019
00020 class ProofreadCommentForm extends CommentForm {
00021
00026 function ProofreadCommentForm($article, $roleId) {
00027 parent::CommentForm($article, COMMENT_TYPE_PROOFREAD, $roleId, $article->getArticleId());
00028 }
00029
00033 function display() {
00034 $templateMgr = &TemplateManager::getManager();
00035 $templateMgr->assign('pageTitle', 'submission.comments.corrections');
00036 $templateMgr->assign('commentAction', 'postProofreadComment');
00037 $templateMgr->assign('commentType', 'proofread');
00038 $templateMgr->assign('hiddenFormParams',
00039 array(
00040 'articleId' => $this->article->getArticleId()
00041 )
00042 );
00043
00044 parent::display();
00045 }
00046
00050 function readInputData() {
00051 parent::readInputData();
00052 }
00053
00057 function execute() {
00058 parent::execute();
00059 }
00060
00064 function email() {
00065 $roleDao = &DAORegistry::getDAO('RoleDAO');
00066 $userDao = &DAORegistry::getDAO('UserDAO');
00067 $journal = &Request::getJournal();
00068
00069
00070 $recipients = array();
00071
00072
00073
00074
00075
00076 $editAssignmentDao = &DAORegistry::getDAO('EditAssignmentDAO');
00077 $editAssignments = &$editAssignmentDao->getEditAssignmentsByArticleId($this->article->getArticleId());
00078 $editorAddresses = array();
00079 while (!$editAssignments->eof()) {
00080 $editAssignment =& $editAssignments->next();
00081 if ($editAssignment->getCanEdit()) $editorAddresses[$editAssignment->getEditorEmail()] = $editAssignment->getEditorFullName();
00082 unset($editAssignment);
00083 }
00084
00085
00086
00087 if (empty($editorAddresses)) {
00088 $editors = &$roleDao->getUsersByRoleId(ROLE_ID_EDITOR, $journal->getJournalId());
00089 while (!$editors->eof()) {
00090 $editor = &$editors->next();
00091 $editorAddresses[$editor->getEmail()] = $editor->getFullName();
00092 }
00093 }
00094
00095
00096 $layoutAssignmentDao = &DAORegistry::getDAO('LayoutAssignmentDAO');
00097 $layoutAssignment = &$layoutAssignmentDao->getLayoutAssignmentByArticleId($this->article->getArticleId());
00098 if ($layoutAssignment != null && $layoutAssignment->getEditorId() > 0) {
00099 $layoutEditor = &$userDao->getUser($layoutAssignment->getEditorId());
00100 } else {
00101 $layoutEditor = null;
00102 }
00103
00104
00105 $proofAssignmentDao = &DAORegistry::getDAO('ProofAssignmentDAO');
00106 $proofAssignment = &$proofAssignmentDao->getProofAssignmentByArticleId($this->article->getArticleId());
00107 if ($proofAssignment != null && $proofAssignment->getProofreaderId() > 0) {
00108 $proofreader = &$userDao->getUser($proofAssignment->getProofreaderId());
00109 } else {
00110 $proofreader = null;
00111 }
00112
00113
00114 $author = &$userDao->getUser($this->article->getUserId());
00115
00116
00117 if ($this->roleId == ROLE_ID_EDITOR || $this->roleId == ROLE_ID_SECTION_EDITOR) {
00118
00119 if ($layoutEditor != null) {
00120 $recipients = array_merge($recipients, array($layoutEditor->getEmail() => $layoutEditor->getFullName()));
00121 }
00122
00123 if ($proofreader != null) {
00124 $recipients = array_merge($recipients, array($proofreader->getEmail() => $proofreader->getFullName()));
00125 }
00126
00127 if (isset($author)) $recipients = array_merge($recipients, array($author->getEmail() => $author->getFullName()));
00128
00129 } else if ($this->roleId == ROLE_ID_LAYOUT_EDITOR) {
00130
00131 $recipients = array_merge($recipients, $editorAddresses);
00132
00133 if ($proofreader != null) {
00134 $recipients = array_merge($recipients, array($proofreader->getEmail() => $proofreader->getFullName()));
00135 }
00136
00137 if (isset($author)) $recipients = array_merge($recipients, array($author->getEmail() => $author->getFullName()));
00138
00139 } else if ($this->roleId == ROLE_ID_PROOFREADER) {
00140
00141 $recipients = array_merge($recipients, $editorAddresses);
00142
00143 if ($layoutEditor != null) {
00144 $recipients = array_merge($recipients, array($layoutEditor->getEmail() => $layoutEditor->getFullName()));
00145 }
00146
00147 if (isset($author)) $recipients = array_merge($recipients, array($author->getEmail() => $author->getFullName()));
00148
00149 } else {
00150
00151 $recipients = array_merge($recipients, $editorAddresses);
00152
00153 if ($layoutEditor != null) {
00154 $recipients = array_merge($recipients, array($layoutEditor->getEmail() => $layoutEditor->getFullName()));
00155 }
00156
00157 if ($proofreader != null) {
00158 $recipients = array_merge($recipients, array($proofreader->getEmail() => $proofreader->getFullName()));
00159 }
00160 }
00161
00162 parent::email($recipients);
00163 }
00164 }
00165
00166 ?>