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