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}