Open Monograph Press  3.3.0
ThankReviewerForm.inc.php
1 <?php
2 
16 import('lib.pkp.classes.form.Form');
17 
18 class ThankReviewerForm extends Form {
21 
25  function __construct($reviewAssignment) {
26  parent::__construct('controllers/grid/users/reviewer/form/thankReviewerForm.tpl');
27  $this->_reviewAssignment = $reviewAssignment;
28 
29  // Validation checks for this form
30  $this->addCheck(new FormValidatorPost($this));
31  $this->addCheck(new FormValidatorCSRF($this));
32  }
33 
34  //
35  // Getters and Setters
36  //
41  function getReviewAssignment() {
43  }
44 
45  //
46  // Overridden template methods
47  //
51  function initData() {
52  $request = Application::get()->getRequest();
53  $userDao = DAORegistry::getDAO('UserDAO'); /* @var $userDao UserDAO */
54  $user = $request->getUser();
55  $context = $request->getContext();
56 
57  $reviewAssignment = $this->getReviewAssignment();
58  $reviewerId = $reviewAssignment->getReviewerId();
59  $reviewer = $userDao->getById($reviewerId);
60 
61  $submissionDao = DAORegistry::getDAO('SubmissionDAO'); /* @var $submissionDao SubmissionDAO */
62  $submission = $submissionDao->getById($reviewAssignment->getSubmissionId());
63 
64  import('lib.pkp.classes.mail.SubmissionMailTemplate');
65  $email = new SubmissionMailTemplate($submission, 'REVIEW_ACK');
66 
67  $dispatcher = $request->getDispatcher();
68  $email->assignParams(array(
69  'reviewerName' => $reviewer->getFullName(),
70  'reviewerUserName' => $reviewer->getUsername(),
71  'passwordResetUrl' => $dispatcher->url($request, ROUTE_PAGE, null, 'login', 'resetPassword', $reviewer->getUsername(), array('confirm' => Validation::generatePasswordResetHash($reviewer->getId()))),
72  'submissionReviewUrl' => $dispatcher->url($request, ROUTE_PAGE, null, 'reviewer', 'submission', null, array('submissionId' => $reviewAssignment->getSubmissionId()))
73  ));
74  $email->replaceParams();
75 
76  $this->setData('submissionId', $submission->getId());
77  $this->setData('stageId', $reviewAssignment->getStageId());
78  $this->setData('reviewAssignmentId', $reviewAssignment->getId());
79  $this->setData('reviewAssignment', $reviewAssignment);
80  $this->setData('reviewerName', $reviewer->getFullName() . ' <' . $reviewer->getEmail() . '>');
81  $this->setData('message', $email->getBody());
82  }
83 
88  function readInputData() {
89  $this->readUserVars(array('message', 'skipEmail'));
90  }
91 
95  function execute(...$functionArgs) {
96  $userDao = DAORegistry::getDAO('UserDAO'); /* @var $userDao UserDAO */
97  $submissionDao = DAORegistry::getDAO('SubmissionDAO'); /* @var $submissionDao SubmissionDAO */
98 
99  $reviewAssignment = $this->getReviewAssignment();
100  $reviewerId = $reviewAssignment->getReviewerId();
101  $reviewer = $userDao->getById($reviewerId);
102  $submission = $submissionDao->getById($reviewAssignment->getSubmissionId());
103 
104  import('lib.pkp.classes.mail.SubmissionMailTemplate');
105  $email = new SubmissionMailTemplate($submission, 'REVIEW_ACK', null, null, null, false);
106 
107  $email->addRecipient($reviewer->getEmail(), $reviewer->getFullName());
108  $email->setBody($this->getData('message'));
109 
110  if (!$this->getData('skipEmail')) {
111  HookRegistry::call('ThankReviewerForm::thankReviewer', array(&$submission, &$reviewAssignment, &$email));
112  $request = Application::get()->getRequest();
113  $dispatcher = $request->getDispatcher();
114  $context = $request->getContext();
115  $user = $request->getUser();
116  $email->assignParams(array(
117  'reviewerName' => $reviewer->getFullName(),
118  'contextUrl' => $dispatcher->url($request, ROUTE_PAGE, $context->getPath()),
119  'editorialContactSignature' => $user->getContactSignature(),
120  'signatureFullName' => $user->getFullname(),
121  ));
122  if (!$email->send($request)) {
123  import('classes.notification.NotificationManager');
124  $notificationMgr = new NotificationManager();
125  $notificationMgr->createTrivialNotification($request->getUser()->getId(), NOTIFICATION_TYPE_ERROR, array('contents' => __('email.compose.error')));
126  }
127  }
128 
129  // update the ReviewAssignment with the acknowledged date
130  $reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO'); /* @var $reviewAssignmentDao ReviewAssignmentDAO */
131  $reviewAssignment->setDateAcknowledged(Core::getCurrentDate());
132  $reviewAssignment->stampModified();
133  $reviewAssignment->setUnconsidered(REVIEW_ASSIGNMENT_NOT_UNCONSIDERED);
134  $reviewAssignmentDao->updateObject($reviewAssignment);
135 
136  parent::execute(...$functionArgs);
137  }
138 }
139 
140 
ThankReviewerForm
Form for sending a thank you to a reviewer.
Definition: ThankReviewerForm.inc.php:18
ThankReviewerForm\__construct
__construct($reviewAssignment)
Definition: ThankReviewerForm.inc.php:25
ThankReviewerForm\getReviewAssignment
getReviewAssignment()
Definition: ThankReviewerForm.inc.php:41
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
SubmissionMailTemplate
Subclass of MailTemplate for sending emails related to submissions.
Definition: SubmissionMailTemplate.inc.php:20
Form\setData
setData($key, $value=null)
Definition: Form.inc.php:229
Form\readUserVars
readUserVars($vars)
Definition: Form.inc.php:378
Form\getData
getData($key)
Definition: Form.inc.php:220
FormValidatorPost
Form validation check to make sure the form is POSTed.
Definition: FormValidatorPost.inc.php:18
Core\getCurrentDate
static getCurrentDate($ts=null)
Definition: Core.inc.php:63
Form\addCheck
addCheck($formValidator)
Definition: Form.inc.php:395
NotificationManager
Definition: NotificationManager.inc.php:19
Validation\generatePasswordResetHash
static generatePasswordResetHash($userId, $expiry=null)
Definition: Validation.inc.php:305
FormValidatorCSRF
Form validation check to make sure the CSRF token is correct.
Definition: FormValidatorCSRF.inc.php:18
Form
Class defining basic operations for handling HTML forms.
Definition: Form.inc.php:47
PKPApplication\get
static get()
Definition: PKPApplication.inc.php:235
ThankReviewerForm\$_reviewAssignment
$_reviewAssignment
Definition: ThankReviewerForm.inc.php:20
HookRegistry\call
static call($hookName, $args=null)
Definition: HookRegistry.inc.php:86
ThankReviewerForm\initData
initData()
Definition: ThankReviewerForm.inc.php:51
ThankReviewerForm\execute
execute(... $functionArgs)
Definition: ThankReviewerForm.inc.php:95
ThankReviewerForm\readInputData
readInputData()
Definition: ThankReviewerForm.inc.php:88