Open Journal Systems  3.3.0
UserEmailForm.inc.php
1 <?php
2 
16 import('lib.pkp.classes.form.Form');
17 
18 class UserEmailForm extends Form {
19 
20  /* @var the user id of user to send email to */
21  var $userId;
22 
27  function __construct($userId) {
28  parent::__construct('controllers/grid/settings/user/form/userEmailForm.tpl');
29 
30  $this->userId = (int) $userId;
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 
52  function fetch($request, $template = null, $display = false) {
53  $userDao = DAORegistry::getDAO('UserDAO'); /* @var $userDao UserDAO */
54  $user = $userDao->getById($this->userId);
55 
56  $templateMgr = TemplateManager::getManager($request);
57  $templateMgr->assign(array(
58  'userId' => $this->userId,
59  'userFullName' => $user->getFullName(),
60  'userEmail' => $user->getEmail(),
61  ));
62 
63  return parent::fetch($request, $template, $display);
64  }
65 
70  function execute(...$functionArgs) {
71  $userDao = DAORegistry::getDAO('UserDAO'); /* @var $userDao UserDAO */
72  $toUser = $userDao->getById($this->userId);
73  $request = Application::get()->getRequest();
74  $fromUser = $request->getUser();
75 
76  import('lib.pkp.classes.mail.MailTemplate');
77  $email = new MailTemplate();
78 
79  $email->addRecipient($toUser->getEmail(), $toUser->getFullName());
80  $email->setReplyTo($fromUser->getEmail(), $fromUser->getFullName());
81  $email->setSubject($this->getData('subject'));
82  $email->setBody($this->getData('message'));
83  $email->assignParams();
84 
85  parent::execute(...$functionArgs);
86 
87  if (!$email->send()) {
88  import('classes.notification.NotificationManager');
89  $notificationMgr = new NotificationManager();
90  $notificationMgr->createTrivialNotification($request->getUser()->getId(), NOTIFICATION_TYPE_ERROR, array('contents' => __('email.compose.error')));
91  }
92  }
93 }
94 
95 
UserEmailForm\$userId
$userId
Definition: UserEmailForm.inc.php:24
UserEmailForm
Form for sending an email to a user.
Definition: UserEmailForm.inc.php:18
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
UserEmailForm\execute
execute(... $functionArgs)
Definition: UserEmailForm.inc.php:73
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
MailTemplate
Subclass of Mail for mailing a template email.
Definition: MailTemplate.inc.php:21
UserEmailForm\readInputData
readInputData()
Definition: UserEmailForm.inc.php:45
UserEmailForm\__construct
__construct($userId)
Definition: UserEmailForm.inc.php:30
UserEmailForm\fetch
fetch($request, $template=null, $display=false)
Definition: UserEmailForm.inc.php:55
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
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