Open Journal Systems  3.3.0
EmailReviewerForm.inc.php
1 <?php
2 
16 import('lib.pkp.classes.form.Form');
17 
18 class EmailReviewerForm extends Form {
19 
22 
27  function __construct($reviewAssignment) {
28  parent::__construct('controllers/grid/users/reviewer/form/emailReviewerForm.tpl');
29 
30  $this->_reviewAssignment = $reviewAssignment;
31 
32  $this->addCheck(new FormValidator($this, 'subject', 'required', 'email.subjectRequired'));
33  $this->addCheck(new FormValidator($this, 'message', 'required', 'email.bodyRequired'));
34  $this->addCheck(new FormValidatorPost($this));
35  $this->addCheck(new FormValidatorCSRF($this));
36  }
37 
42  function readInputData() {
43  $this->readUserVars(array(
44  'subject',
45  'message',
46  ));
47  }
48 
54  function fetch($request, $template = null, $display = false, $requestArgs = array()) {
55  $userDao = DAORegistry::getDAO('UserDAO'); /* @var $userDao UserDAO */
56  $user = $userDao->getById($this->_reviewAssignment->getReviewerId());
57 
58  $templateMgr = TemplateManager::getManager($request);
59  $templateMgr->assign(array(
60  'userFullName' => $this->_reviewAssignment->getReviewerFullName(),
61  'requestArgs' => $requestArgs,
62  'reviewAssignmentId' => $this->_reviewAssignment->getId(),
63  ));
64 
65  return parent::fetch($request, $template, $display);
66  }
67 
72  function execute($submission) {
73  $userDao = DAORegistry::getDAO('UserDAO'); /* @var $userDao UserDAO */
74  $toUser = $userDao->getById($this->_reviewAssignment->getReviewerId());
75  $request = Application::get()->getRequest();
76  $fromUser = $request->getUser();
77 
78  import('lib.pkp.classes.mail.SubmissionMailTemplate');
79  $email = new SubmissionMailTemplate($submission);
80 
81  $email->addRecipient($toUser->getEmail(), $toUser->getFullName());
82  $email->setReplyTo($fromUser->getEmail(), $fromUser->getFullName());
83  $email->setSubject($this->getData('subject'));
84  $email->setBody($this->getData('message'));
85  $email->assignParams();
86  if (!$email->send()) {
87  import('classes.notification.NotificationManager');
88  $notificationMgr = new NotificationManager();
89  $notificationMgr->createTrivialNotification($request->getUser()->getId(), NOTIFICATION_TYPE_ERROR, array('contents' => __('email.compose.error')));
90  }
91  }
92 }
93 
94 
EmailReviewerForm\$_reviewAssignment
$_reviewAssignment
Definition: EmailReviewerForm.inc.php:24
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
EmailReviewerForm\readInputData
readInputData()
Definition: EmailReviewerForm.inc.php:45
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
EmailReviewerForm
Form for sending an email to a user.
Definition: EmailReviewerForm.inc.php:18
PKPTemplateManager\getManager
static & getManager($request=null)
Definition: PKPTemplateManager.inc.php:1239
FormValidator
Class to represent a form validation check.
Definition: FormValidator.inc.php:23
Form\addCheck
addCheck($formValidator)
Definition: Form.inc.php:395
EmailReviewerForm\__construct
__construct($reviewAssignment)
Definition: EmailReviewerForm.inc.php:30
NotificationManager
Definition: NotificationManager.inc.php:19
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
EmailReviewerForm\fetch
fetch($request, $template=null, $display=false, $requestArgs=array())
Definition: EmailReviewerForm.inc.php:57
EmailReviewerForm\execute
execute($submission)
Definition: EmailReviewerForm.inc.php:75