diff --git a/classes/components/forms/publication/PublishForm.php b/classes/components/forms/publication/PublishForm.php
index 223564bb5b4..386af1fd88e 100644
--- a/classes/components/forms/publication/PublishForm.php
+++ b/classes/components/forms/publication/PublishForm.php
@@ -56,17 +56,35 @@ public function __construct($action, $publication, $submissionContext, $requirem
// Set separate messages and buttons if publication requirements have passed
if (empty($requirementErrors)) {
+ // Get any warnings that should be displayed when publishing.
+ $submission = Repo::submission()->get($publication->getData('submissionId'));
+ $warnings = Repo::publication()->validatePublishWarnings(
+ $publication,
+ $submission,
+ $submissionContext->getSupportedSubmissionLocales(),
+ $submissionContext->getPrimaryLocale()
+ );
+
+ if (!empty($warnings)) {
+ $msg = '
' . __('publication.publish.warning') . '';
+ $msg .= '
';
+ foreach ($warnings as $error) {
+ $msg .= '- ' . $error . '
';
+ }
+ $msg .= '
';
+ }
+
$issue = $publication->getData('issueId')
? Repo::issue()->get($publication->getData('issueId'))
: null;
- $msg = __('publication.publish.confirmation');
+ $msg .= __('publication.publish.confirmation');
$submitLabel = __('publication.publish');
// If the publication is marked as ready to publish,
// it will be published immediately regardless of the issue assignment
// or to a future issue, it will be published immediately
if ($publication->getData('status') == Publication::STATUS_READY_TO_PUBLISH) {
- $msg = match($issue?->getData('published')) {
+ $msg .= match($issue?->getData('published')) {
true => __(
'publication.publish.confirmation.backIssue',
['issue' => htmlspecialchars($issue->getIssueIdentification())]
@@ -81,7 +99,7 @@ public function __construct($action, $publication, $submissionContext, $requirem
}
if ($publication->getData('status') == Publication::STATUS_READY_TO_SCHEDULE) {
- $msg = __(
+ $msg .= __(
'publication.publish.confirmation.futureIssue',
['issue' => htmlspecialchars($issue->getIssueIdentification())]
);
@@ -92,7 +110,6 @@ public function __construct($action, $publication, $submissionContext, $requirem
$publicationVersion = $publication->getVersion();
if (!isset($publicationVersion)) {
- $submission = Repo::submission()->get($publication->getData('submissionId'));
$nextVersion = Repo::submission()->getNextAvailableVersion($submission, Publication::DEFAULT_VERSION_STAGE, false);
$msg .= '' . __('publication.required.versionStage') . '
';
diff --git a/lib/pkp b/lib/pkp
index 1a5a8b1d7e5..02ef9576955 160000
--- a/lib/pkp
+++ b/lib/pkp
@@ -1 +1 @@
-Subproject commit 1a5a8b1d7e52ad079e4a669d4a6f3795cab9e61f
+Subproject commit 02ef9576955c146e62f87e229accaa75ec52ec8f
diff --git a/plugins/generic/crossref b/plugins/generic/crossref
index 39110fae282..377b9be1157 160000
--- a/plugins/generic/crossref
+++ b/plugins/generic/crossref
@@ -1 +1 @@
-Subproject commit 39110fae282000c3d30ea449d673013b0547b237
+Subproject commit 377b9be1157ad7ab328c37d400b571fa6861be5b