From 4711cc5c55f89d95db885c6ed64392602682203b Mon Sep 17 00:00:00 2001 From: Kaitlin Newson Date: Wed, 8 Jan 2025 15:24:20 -0400 Subject: [PATCH] pkp/pkp-lib#10786 fix resolver plugin page range matching and update for 3.5 --- plugins/gateways/resolver/ResolverPlugin.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/gateways/resolver/ResolverPlugin.php b/plugins/gateways/resolver/ResolverPlugin.php index b3889e57a6f..224625490ed 100644 --- a/plugins/gateways/resolver/ResolverPlugin.php +++ b/plugins/gateways/resolver/ResolverPlugin.php @@ -83,11 +83,11 @@ public function fetch($args, $request) $doi = implode('/', $args); $article = Repo::submission()->getByDoi($doi, $request->getJournal()->getId()); if ($article) { - $request->redirect(null, 'article', 'view', $article->getBestId()); + $request->redirect(null, 'article', 'view', [$article->getBestId()]); } break; case 'vnp': // Volume, number, page - case 'ynp': // Volume, number, year, page + case 'ynp': // Year, number, page // This can only be used from within a journal context $journal = $request->getJournal(); if (!$journal) { @@ -139,17 +139,17 @@ public function fetch($args, $request) foreach ($submissions as $submission) { // Look for the correct page in the list of articles. $matches = null; - if (preg_match('/^[Pp][Pp]?[.]?[ ]?(\d+)$/u', $submission->getCurrentPublication()->getData('pages'), $matches)) { + if (preg_match('/^[Pp]?[Pp]?[.]?[ ]?(\d+)$/u', $submission->getCurrentPublication()->getData('pages'), $matches)) { $matchedPage = $matches[1]; if ($page == $matchedPage) { - $request->redirect(null, 'article', 'view', $submission->getBestId()); + $request->redirect(null, 'article', 'view', [$submission->getBestId()]); } } - if (preg_match('/^[Pp][Pp]?[.]?[ ]?(\d+)[ ]?-[ ]?([Pp][Pp]?[.]?[ ]?)?(\d+)$/u', $submission->getCurrentPublication()->getData('pages'), $matches)) { + if (preg_match('/^[Pp]?[Pp]?[.]?[ ]?(\d+)[ ]?-[ ]?([Pp][Pp]?[.]?[ ]?)?(\d+)$/u', $submission->getCurrentPublication()->getData('pages'), $matches)) { $matchedPageFrom = $matches[1]; $matchedPageTo = $matches[3]; if ($page >= $matchedPageFrom && ($page < $matchedPageTo || ($page == $matchedPageTo && $matchedPageFrom = $matchedPageTo))) { - $request->redirect(null, 'article', 'view', $submission->getBestId()); + $request->redirect(null, 'article', 'view', [$submission->getBestId()]); } } }