16 import(
'lib.pkp.classes.form.Form');
26 parent::__construct(
'controllers/grid/users/reviewer/form/reviewReminderForm.tpl');
27 $this->_reviewAssignment = $reviewAssignment;
56 $user = $request->getUser();
57 $context = $request->getContext();
60 $reviewerId = $reviewAssignment->getReviewerId();
61 $reviewer = $userDao->getById($reviewerId);
64 $submission = $submissionDao->getById($reviewAssignment->getSubmissionId());
66 import(
'lib.pkp.classes.mail.SubmissionMailTemplate');
67 $context = $request->getContext();
73 $reviewDueDate = strtotime($reviewAssignment->getDateDue());
74 $dateFormatShort = $context->getLocalizedDateFormatShort();
75 if ($reviewDueDate == -1) $reviewDueDate = $dateFormatShort;
76 else $reviewDueDate = strftime($dateFormatShort, $reviewDueDate);
78 $dispatcher = $request->getDispatcher();
80 'reviewerName' => $reviewer->getFullName(),
81 'reviewDueDate' => $reviewDueDate,
82 'editorialContactSignature' => $user->getContactSignature(),
83 'reviewerUserName' => $reviewer->getUsername(),
84 'passwordResetUrl' => $dispatcher->url($request, ROUTE_PAGE,
null,
'login',
'resetPassword', $reviewer->getUsername(), array(
'confirm' =>
Validation::generatePasswordResetHash($reviewer->getId()))),
85 'submissionReviewUrl' => $dispatcher->url($request, ROUTE_PAGE,
null,
'reviewer',
'submission',
null, array(
'submissionId' => $reviewAssignment->getSubmissionId()))
87 $email->assignParams($paramArray);
89 $this->
setData(
'stageId', $reviewAssignment->getStageId());
90 $this->
setData(
'reviewAssignmentId', $reviewAssignment->getId());
91 $this->
setData(
'submissionId', $submission->getId());
92 $this->
setData(
'reviewAssignment', $reviewAssignment);
93 $this->
setData(
'reviewerName', $reviewer->getFullName() .
' <' . $reviewer->getEmail() .
'>');
94 $this->
setData(
'message', $email->getBody());
95 $this->
setData(
'reviewDueDate', $reviewDueDate);
101 function fetch($request, $template =
null, $display =
false) {
102 $context = $request->getContext();
103 $user = $request->getUser();
106 $templateMgr->assign(
'emailVariables', array(
107 'reviewerName' => __(
'user.name'),
108 'reviewDueDate' => __(
'reviewer.submission.reviewDueDate'),
109 'submissionReviewUrl' => __(
'common.url'),
110 'submissionTitle' => __(
'submission.title'),
111 'passwordResetUrl' => __(
'common.url'),
112 'contextName' => $context->getLocalizedName(),
113 'editorialContactSignature' => $user->getContactSignature(),
115 return parent::fetch($request, $template, $display);
138 $reviewerId = $reviewAssignment->getReviewerId();
139 $reviewer = $userDao->getById($reviewerId);
140 $submission = $submissionDao->getById($reviewAssignment->getSubmissionId());
141 $reviewDueDate = $this->
getData(
'reviewDueDate');
142 $dispatcher = $request->getDispatcher();
143 $user = $request->getUser();
145 import(
'lib.pkp.classes.mail.SubmissionMailTemplate');
146 $context = $request->getContext();
150 $reviewUrlArgs = array(
'submissionId' => $reviewAssignment->getSubmissionId());
151 if ($context->getData(
'reviewerAccessKeysEnabled')) {
152 import(
'lib.pkp.classes.security.AccessKeyManager');
154 $expiryDays = ($context->getData(
'numWeeksPerReview') + 4) * 7;
155 $accessKey = $accessKeyManager->createKey($context->getId(), $reviewerId, $reviewAssignment->getId(), $expiryDays);
156 $reviewUrlArgs = array_merge($reviewUrlArgs, array(
'reviewId' => $reviewAssignment->getId(),
'key' => $accessKey));
159 $email->addRecipient($reviewer->getEmail(), $reviewer->getFullName());
160 $email->setBody($this->
getData(
'message'));
161 $email->assignParams(array(
162 'reviewerName' => $reviewer->getFullName(),
163 'reviewDueDate' => $reviewDueDate,
164 'passwordResetUrl' => $dispatcher->url($request, ROUTE_PAGE,
null,
'login',
'resetPassword', $reviewer->getUsername(), array(
'confirm' =>
Validation::generatePasswordResetHash($reviewer->getId()))),
165 'submissionReviewUrl' => $dispatcher->url($request, ROUTE_PAGE,
null,
'reviewer',
'submission',
null, $reviewUrlArgs),
166 'editorialContactSignature' => $user->getContactSignature(),
168 if (!$email->send($request)) {
169 import(
'classes.notification.NotificationManager');
171 $notificationMgr->createTrivialNotification($request->getUser()->getId(), NOTIFICATION_TYPE_ERROR, array(
'contents' => __(
'email.compose.error')));
176 $reviewAssignment->stampModified();
178 $reviewAssignmentDao->updateObject($reviewAssignment);
180 parent::execute(...$functionArgs);
191 $templateKey =
'REVIEW_REMIND';
192 if ($context->getData(
'reviewerAccessKeysEnabled')) {
193 $templateKey =
'REVIEW_REMIND_ONECLICK';