From f17bbc4d744088cdf7b8bc985d45597aa3e7115d Mon Sep 17 00:00:00 2001 From: Bozana Bokan Date: Fri, 6 Dec 2024 15:42:18 +0100 Subject: [PATCH] ORCID fix: provide no element if the locale is not in ISO 639-1 --- classes/orcid/PKPOrcidWork.php | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/classes/orcid/PKPOrcidWork.php b/classes/orcid/PKPOrcidWork.php index 407ddf81bbb..11dc3a9c372 100644 --- a/classes/orcid/PKPOrcidWork.php +++ b/classes/orcid/PKPOrcidWork.php @@ -88,12 +88,16 @@ private function build(): array ], 'publication-date' => $this->buildOrcidPublicationDate($this->publication), 'url' => $publicationUrl, - 'language-code' => LocaleConversion::getIso1FromLocale($publicationLocale), 'contributors' => [ 'contributor' => $this->buildOrcidContributors($this->authors, $this->context, $this->publication) ] ]; + $iso1PublicationLocale = LocaleConversion::getIso1FromLocale($publicationLocale); + if ($iso1PublicationLocale) { + $orcidWork['language-code'] = $iso1PublicationLocale; + } + $bibtexCitation = $this->getBibtexCitation($submission); if (!empty($bibtexCitation)) { $orcidWork['citation'] = [ @@ -106,7 +110,10 @@ private function build(): array foreach ($this->publication->getData('title') as $locale => $title) { if ($locale !== $publicationLocale) { - $orcidWork['title']['translated-title'] = ['value' => $title, 'language-code' => LocaleConversion::getIso1FromLocale($locale)]; + $iso1Locale = LocaleConversion::getIso1FromLocale($locale); + if ($iso1Locale) { + $orcidWork['title']['translated-title'] = ['value' => $title, 'language-code' => $iso1Locale]; + } } } @@ -293,8 +300,6 @@ private function buildOrcidContributors(array $authors, Context $context, Public /** * Gets any non-DOI PubId external IDs, e.g. for Issues * - * @param PubIdPlugin $plugin - * @return array */ protected function getAppPubIdExternalIds(PubIdPlugin $plugin): array { @@ -304,7 +309,6 @@ protected function getAppPubIdExternalIds(PubIdPlugin $plugin): array /** * Gets any app-specific DOI external IDs, e.g. for Issues * - * @return array */ protected function getAppDoiExternalIds(): array { @@ -314,8 +318,6 @@ protected function getAppDoiExternalIds(): array /** * Uses the CitationStyleLanguage plugin to get bibtex citation if possible * - * @param Submission $submission - * @return string */ protected function getBibtexCitation(Submission $submission): string {