00001 <?php
00002
00015 import('lib.pkp.classes.form.Form');
00016
00017 class ThankReviewerForm extends Form {
00019 var $_reviewAssignment;
00020
00024 function ThankReviewerForm(&$reviewAssignment) {
00025 parent::Form('controllers/grid/users/reviewer/form/thankReviewerForm.tpl');
00026 $this->_reviewAssignment =& $reviewAssignment;
00027
00028
00029 $this->addCheck(new FormValidatorPost($this));
00030 }
00031
00032
00033
00034
00039 function &getReviewAssignment() {
00040 return $this->_reviewAssignment;
00041 }
00042
00043
00044
00045
00051 function initData($args, &$request) {
00052 $userDao =& DAORegistry::getDAO('UserDAO');
00053 $user =& $request->getUser();
00054 $press =& $request->getPress();
00055
00056 $reviewAssignment =& $this->getReviewAssignment();
00057 $reviewerId = $reviewAssignment->getReviewerId();
00058 $reviewer =& $userDao->getById($reviewerId);
00059
00060 $monographDao =& DAORegistry::getDAO('MonographDAO');
00061 $monograph =& $monographDao->getById($reviewAssignment->getSubmissionId());
00062
00063 import('classes.mail.MonographMailTemplate');
00064 $email = new MonographMailTemplate($monograph, 'REVIEW_ACK');
00065
00066 $dispatcher =& $request->getDispatcher();
00067 $paramArray = array(
00068 'reviewerName' => $reviewer->getFullName(),
00069 'editorialContactSignature' => $user->getContactSignature(),
00070 'reviewerUserName' => $reviewer->getUsername(),
00071 'passwordResetUrl' => $dispatcher->url($request, ROUTE_PAGE, null, 'login', 'resetPassword', $reviewer->getUsername(), array('confirm' => Validation::generatePasswordResetHash($reviewer->getId()))),
00072 'submissionReviewUrl' => $dispatcher->url($request, ROUTE_PAGE, null, 'reviewer', 'submission', null, array('monographId' => $reviewAssignment->getSubmissionId()))
00073 );
00074 $email->assignParams($paramArray);
00075
00076 $this->setData('monographId', $monograph->getId());
00077 $this->setData('stageId', $reviewAssignment->getStageId());
00078 $this->setData('reviewAssignmentId', $reviewAssignment->getId());
00079 $this->setData('reviewAssignment', $reviewAssignment);
00080 $this->setData('reviewerName', $reviewer->getFullName() . ' <' . $reviewer->getEmail() . '>');
00081 $this->setData('message', $email->getBody() . "\n" . $press->getSetting('emailSignature'));
00082 }
00083
00088 function readInputData() {
00089 $this->readUserVars(array('message', 'skipEmail'));
00090 }
00091
00097 function execute($args, &$request) {
00098 $userDao =& DAORegistry::getDAO('UserDAO');
00099 $monographDao =& DAORegistry::getDAO('MonographDAO');
00100
00101 $reviewAssignment =& $this->getReviewAssignment();
00102 $reviewerId = $reviewAssignment->getReviewerId();
00103 $reviewer =& $userDao->getById($reviewerId);
00104 $monograph =& $monographDao->getById($reviewAssignment->getSubmissionId());
00105
00106 import('classes.mail.MonographMailTemplate');
00107 $email = new MonographMailTemplate($monograph, 'REVIEW_ACK', null, null, null, false);
00108
00109 $email->addRecipient($reviewer->getEmail(), $reviewer->getFullName());
00110 $email->setBody($this->getData('message'));
00111
00112 if (!$this->getData('skipEmail')) {
00113 HookRegistry::call('SeriesEditorAction::thankReviewer', array(&$monograph, &$reviewAssignment, &$email));
00114 $email->send($request);
00115 }
00116
00117
00118 $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO');
00119 $reviewAssignment->setDateAcknowledged(Core::getCurrentDate());
00120 $reviewAssignment->stampModified();
00121 $reviewAssignment->setUnconsidered(REVIEW_ASSIGNMENT_NOT_UNCONSIDERED);
00122 $reviewAssignmentDao->updateReviewAssignment($reviewAssignment);
00123 }
00124 }
00125
00126 ?>