Open Journal Systems  3.3.0
SubmissionSubmitStep4Form.inc.php
1 <?php
2 
16 import('lib.pkp.classes.submission.form.PKPSubmissionSubmitStep4Form');
17 
25  parent::__construct(
26  $context,
28  );
29  }
30 
35  function execute(...$functionParams) {
36  parent::execute(...$functionParams);
37 
39  // Send author notification email
40  import('classes.mail.ArticleMailTemplate');
41  $mail = new ArticleMailTemplate($submission, 'SUBMISSION_ACK', null, null, false);
42  $authorMail = new ArticleMailTemplate($submission, 'SUBMISSION_ACK_NOT_USER', null, null, false);
43 
44  $request = Application::get()->getRequest();
45  $context = $request->getContext();
46  $router = $request->getRouter();
47  if ($mail->isEnabled()) {
48  // submission ack emails should be from the contact.
49  $mail->setFrom($this->context->getData('contactEmail'), $this->context->getData('contactName'));
50  $authorMail->setFrom($this->context->getData('contactEmail'), $this->context->getData('contactName'));
51 
52  $user = $request->getUser();
53  $primaryAuthor = $submission->getPrimaryAuthor();
54  if (!isset($primaryAuthor)) {
55  $authors = $submission->getAuthors();
56  $primaryAuthor = $authors[0];
57  }
58  $mail->addRecipient($user->getEmail(), $user->getFullName());
59 
60  if ($user->getEmail() != $primaryAuthor->getEmail()) {
61  $authorMail->addRecipient($primaryAuthor->getEmail(), $primaryAuthor->getFullName());
62  }
63 
64  $assignedAuthors = $submission->getAuthors();
65 
66  foreach ($assignedAuthors as $author) {
67  $authorEmail = $author->getEmail();
68  // only add the author email if they have not already been added as the primary author
69  // or user creating the submission.
70  if ($authorEmail != $primaryAuthor->getEmail() && $authorEmail != $user->getEmail()) {
71  $authorMail->addRecipient($author->getEmail(), $author->getFullName());
72  }
73  }
74  $mail->bccAssignedSubEditors($submission->getId(), WORKFLOW_STAGE_ID_SUBMISSION);
75 
76  $mail->assignParams(array(
77  'authorName' => $user->getFullName(),
78  'authorUsername' => $user->getUsername(),
79  'editorialContactSignature' => $context->getData('contactName'),
80  'submissionUrl' => $router->url($request, null, 'authorDashboard', 'submission', $submission->getId()),
81  ));
82 
83  $authorMail->assignParams(array(
84  'submitterName' => $user->getFullName(),
85  'editorialContactSignature' => $context->getData('contactName'),
86  ));
87 
88  if (!$mail->send($request)) {
89  import('classes.notification.NotificationManager');
90  $notificationMgr = new NotificationManager();
91  $notificationMgr->createTrivialNotification($request->getUser()->getId(), NOTIFICATION_TYPE_ERROR, array('contents' => __('email.compose.error')));
92  }
93 
94  $recipients = $authorMail->getRecipients();
95  if (!empty($recipients)) {
96  if (!$authorMail->send($request)) {
97  import('classes.notification.NotificationManager');
98  $notificationMgr = new NotificationManager();
99  $notificationMgr->createTrivialNotification($request->getUser()->getId(), NOTIFICATION_TYPE_ERROR, array('contents' => __('email.compose.error')));
100  }
101  }
102  }
103 
104  // Log submission.
105  import('classes.log.SubmissionEventLogEntry'); // Constants
106  import('lib.pkp.classes.log.SubmissionLog');
107  SubmissionLog::logEvent($request, $submission, SUBMISSION_LOG_SUBMISSION_SUBMIT, 'submission.event.submissionSubmitted');
108 
109  return $this->submissionId;
110  }
111 }
112 
113 
SubmissionSubmitStep4Form
Form for Step 4 of author submission.
Definition: SubmissionSubmitStep4Form.inc.php:18
PKPSubmissionSubmitStep4Form
Form for Step 4 of author submission: confirm & complete.
Definition: PKPSubmissionSubmitStep4Form.inc.php:18
SubmissionLog\logEvent
static logEvent($request, $submission, $eventType, $messageKey, $params=array())
Definition: SubmissionLog.inc.php:34
SubmissionSubmitForm\$context
$context
Definition: SubmissionSubmitForm.inc.php:26
SubmissionSubmitStep4Form\execute
execute(... $functionParams)
Definition: SubmissionSubmitStep4Form.inc.php:35
SubmissionSubmitForm\$submissionId
$submissionId
Definition: SubmissionSubmitForm.inc.php:32
ArticleMailTemplate
Subclass of SubmissionMailTemplate for sending emails related to articles.
Definition: ArticleMailTemplate.inc.php:21
SubmissionSubmitStep4Form\__construct
__construct($context, $submission)
Definition: SubmissionSubmitStep4Form.inc.php:24
NotificationManager
Definition: NotificationManager.inc.php:19
PKPApplication\get
static get()
Definition: PKPApplication.inc.php:235
SubmissionSubmitForm\$submission
$submission
Definition: SubmissionSubmitForm.inc.php:38