diff --git a/classes/search/MonographSearchIndex.php b/classes/search/MonographSearchIndex.php index 4a95a775071..7c9cfb12984 100644 --- a/classes/search/MonographSearchIndex.php +++ b/classes/search/MonographSearchIndex.php @@ -345,12 +345,16 @@ public function rebuildIndex($log = false, $press = null, $switches = []) protected function _flattenLocalizedArray($arrayWithLocales) { $flattenedArray = []; + foreach ($arrayWithLocales as $localeArray) { - $flattenedArray = array_merge( - $flattenedArray, + $names = array_map( + static fn ($item) => $item['name'], $localeArray ); + + $flattenedArray = array_merge($flattenedArray, $names); } + return $flattenedArray; } } diff --git a/lib/pkp b/lib/pkp index 29997162922..ea5c7648f89 160000 --- a/lib/pkp +++ b/lib/pkp @@ -1 +1 @@ -Subproject commit 29997162922cf5b1f62016ca10e55dc2a6deff23 +Subproject commit ea5c7648f8962052745e5291f2a169d7056593df diff --git a/plugins/generic/dublinCoreMeta/DublinCoreMetaPlugin.php b/plugins/generic/dublinCoreMeta/DublinCoreMetaPlugin.php index 66f7c8f4855..f2e235e6869 100644 --- a/plugins/generic/dublinCoreMeta/DublinCoreMetaPlugin.php +++ b/plugins/generic/dublinCoreMeta/DublinCoreMetaPlugin.php @@ -151,14 +151,14 @@ public function monographView($hookName, $args) if ($subjects = $publication->getData('subjects')) { foreach ($subjects as $locale => $localeSubjects) { foreach ($localeSubjects as $i => $subject) { - $templateMgr->addHeader('dublinCoreSubject' . $locale . $i++, ''); + $templateMgr->addHeader('dublinCoreSubject' . $locale . $i++, ''); } } } if ($keywords = $publication->getData('keywords')) { foreach ($keywords as $locale => $localeKeywords) { foreach ($localeKeywords as $i => $keyword) { - $templateMgr->addHeader('dublinCoreKeyword' . $locale . $i++, ''); + $templateMgr->addHeader('dublinCoreKeyword' . $locale . $i++, ''); } } } diff --git a/plugins/metadata/dc11/filter/Dc11SchemaPublicationFormatAdapter.php b/plugins/metadata/dc11/filter/Dc11SchemaPublicationFormatAdapter.php index dc2008c0637..e07d4b523c4 100755 --- a/plugins/metadata/dc11/filter/Dc11SchemaPublicationFormatAdapter.php +++ b/plugins/metadata/dc11/filter/Dc11SchemaPublicationFormatAdapter.php @@ -28,7 +28,6 @@ use APP\publicationFormat\PublicationFormat; use APP\section\Section; use APP\submission\Submission; -use PKP\controlledVocab\ControlledVocab; use PKP\db\DAORegistry; use PKP\facades\Locale; use PKP\i18n\LocaleConversion; @@ -91,16 +90,20 @@ public function extractMetadataFromDataObject(&$publicationFormat) // Subject $subjects = array_merge_recursive( - Repo::controlledVocab()->getBySymbolic( - ControlledVocab::CONTROLLED_VOCAB_SUBMISSION_KEYWORD, - Application::ASSOC_TYPE_PUBLICATION, - $publication->getId() - ), - Repo::controlledVocab()->getBySymbolic( - ControlledVocab::CONTROLLED_VOCAB_SUBMISSION_SUBJECT, - Application::ASSOC_TYPE_PUBLICATION, - $publication->getId() - ) + collect($publication->getData('keywords')) + ->map( + fn (array $items): array => collect($items) + ->pluck('name') + ->all() + ) + ->all(), + collect($publication->getData('subjects')) + ->map( + fn (array $items): array => collect($items) + ->pluck('name') + ->all() + ) + ->all() ); $this->_addLocalizedElements($dc11Description, 'dc:subject', $subjects); diff --git a/plugins/reports/monographReport/Report.php b/plugins/reports/monographReport/Report.php index 9fbeb04e915..09e69a1b841 100644 --- a/plugins/reports/monographReport/Report.php +++ b/plugins/reports/monographReport/Report.php @@ -32,7 +32,6 @@ use Illuminate\Support\LazyCollection; use IteratorAggregate; use PKP\category\Category; -use PKP\controlledVocab\ControlledVocab; use PKP\facades\Locale; use PKP\security\Role; use PKP\stageAssignment\StageAssignment; @@ -365,11 +364,13 @@ private function getStatus(): string private function getKeywords(): string { return $this->flattenKeywords( - Repo::controlledVocab()->getBySymbolic( - ControlledVocab::CONTROLLED_VOCAB_SUBMISSION_KEYWORD, - Application::ASSOC_TYPE_PUBLICATION, - $this->publication->getId() - ) + collect($this->publication->getData('keywords') ?? []) + ->map( + fn (array $items): array => collect($items) + ->pluck('name') + ->all() + ) + ->all() ); } @@ -379,11 +380,13 @@ private function getKeywords(): string private function getSubjects(): string { return $this->flattenKeywords( - Repo::controlledVocab()->getBySymbolic( - ControlledVocab::CONTROLLED_VOCAB_SUBMISSION_SUBJECT, - Application::ASSOC_TYPE_PUBLICATION, - $this->publication->getId() - ) + collect($this->publication->getData('subjects') ?? []) + ->map( + fn (array $items): array => collect($items) + ->pluck('name') + ->all() + ) + ->all() ); } @@ -393,11 +396,13 @@ private function getSubjects(): string private function getDisciplines(): string { return $this->flattenKeywords( - Repo::controlledVocab()->getBySymbolic( - ControlledVocab::CONTROLLED_VOCAB_SUBMISSION_DISCIPLINE, - Application::ASSOC_TYPE_PUBLICATION, - $this->publication->getId() - ) + collect($this->publication->getData('disciplines') ?? []) + ->map( + fn (array $items): array => collect($items) + ->pluck('name') + ->all() + ) + ->all() ); } @@ -407,11 +412,13 @@ private function getDisciplines(): string private function getAgencies(): string { return $this->flattenKeywords( - Repo::controlledVocab()->getBySymbolic( - ControlledVocab::CONTROLLED_VOCAB_SUBMISSION_AGENCY, - Application::ASSOC_TYPE_PUBLICATION, - $this->publication->getId() - ) + collect($this->publication->getData('supportingAgencies') ?? []) + ->map( + fn (array $items): array => collect($items) + ->pluck('name') + ->all() + ) + ->all() ); } diff --git a/templates/frontend/objects/monograph_full.tpl b/templates/frontend/objects/monograph_full.tpl index 70354a98d06..f9573b7a77e 100644 --- a/templates/frontend/objects/monograph_full.tpl +++ b/templates/frontend/objects/monograph_full.tpl @@ -129,7 +129,7 @@ {foreach name="keywords" from=$publication->getLocalizedData('keywords') item=keyword} - {$keyword|escape}{if !$smarty.foreach.keywords.last}, {/if} + {$keyword.name|escape}{if !$smarty.foreach.keywords.last}{translate key="common.commaListSeparator"}{/if} {/foreach}