00001 <?php
00002
00015 import('lib.pkp.classes.form.Form');
00016
00017 class ReviewReminderForm extends Form {
00019 var $_reviewAssignment;
00020
00024 function ReviewReminderForm(&$reviewAssignment) {
00025 parent::Form('controllers/grid/users/reviewer/form/reviewReminderForm.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
00046
00052 function initData($args, &$request) {
00053 $userDao =& DAORegistry::getDAO('UserDAO');
00054 $user =& $request->getUser();
00055 $press =& $request->getPress();
00056
00057 $reviewAssignment =& $this->getReviewAssignment();
00058 $reviewerId = $reviewAssignment->getReviewerId();
00059 $reviewer =& $userDao->getById($reviewerId);
00060
00061 $monographDao =& DAORegistry::getDAO('MonographDAO');
00062 $monograph =& $monographDao->getById($reviewAssignment->getSubmissionId());
00063
00064 import('classes.mail.MonographMailTemplate');
00065 $email = new MonographMailTemplate($monograph, 'REVIEW_REMIND');
00066
00067
00068 $reviewDueDate = strtotime($reviewAssignment->getDateDue());
00069 $dateFormatShort = Config::getVar('general', 'date_format_short');
00070 if ($reviewDueDate == -1) $reviewDueDate = $dateFormatShort;
00071 else $reviewDueDate = strftime($dateFormatShort, $reviewDueDate);
00072
00073 $dispatcher =& $request->getDispatcher();
00074 $paramArray = array(
00075 'reviewerName' => $reviewer->getFullName(),
00076 'reviewDueDate' => $reviewDueDate,
00077 'editorialContactSignature' => $user->getContactSignature(),
00078 'reviewerUserName' => $reviewer->getUsername(),
00079 'passwordResetUrl' => $dispatcher->url($request, ROUTE_PAGE, null, 'login', 'resetPassword', $reviewer->getUsername(), array('confirm' => Validation::generatePasswordResetHash($reviewer->getId()))),
00080 'submissionReviewUrl' => $dispatcher->url($request, ROUTE_PAGE, null, 'reviewer', 'submission', null, array('monographId' => $reviewAssignment->getSubmissionId()))
00081 );
00082 $email->assignParams($paramArray);
00083
00084 $this->setData('monographId', $monograph->getId());
00085 $this->setData('stageId', $reviewAssignment->getStageId());
00086 $this->setData('reviewAssignmentId', $reviewAssignment->getId());
00087 $this->setData('reviewAssignment', $reviewAssignment);
00088 $this->setData('reviewerName', $reviewer->getFullName() . ' <' . $reviewer->getEmail() . '>');
00089 $this->setData('message', $email->getBody() . "\n" . $press->getSetting('emailSignature'));
00090 }
00091
00096 function readInputData() {
00097 $this->readUserVars(array('message'));
00098
00099 }
00100
00106 function execute($args, &$request) {
00107 $userDao =& DAORegistry::getDAO('UserDAO');
00108 $monographDao =& DAORegistry::getDAO('MonographDAO');
00109
00110 $reviewAssignment =& $this->getReviewAssignment();
00111 $reviewerId = $reviewAssignment->getReviewerId();
00112 $reviewer =& $userDao->getById($reviewerId);
00113 $monograph =& $monographDao->getById($reviewAssignment->getSubmissionId());
00114
00115 import('classes.mail.MonographMailTemplate');
00116 $email = new MonographMailTemplate($monograph, 'REVIEW_REMIND', null, null, null, false);
00117
00118 $email->addRecipient($reviewer->getEmail(), $reviewer->getFullName());
00119 $email->setBody($this->getData('message'));
00120 $email->send($request);
00121
00122
00123 $reviewAssignment->setDateReminded(Core::getCurrentDate());
00124 $reviewAssignment->stampModified();
00125 $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO');
00126 $reviewAssignmentDao->updateObject($reviewAssignment);
00127 }
00128 }
00129
00130 ?>