From 78d80eb96f58fb0dfb7fea1d9ef792a0053d3f04 Mon Sep 17 00:00:00 2001 From: mshroom <32199029+mshroom@users.noreply.github.com> Date: Wed, 6 May 2026 12:43:56 +0300 Subject: [PATCH] Fix title_in_hierarchy fields to array --- src/RecordManager/Finna/Record/Ead3.php | 4 ++-- src/RecordManager/Finna/Record/Lido.php | 10 ++++++---- tests/RecordManagerTest/Finna/Record/Ead3Test.php | 10 +++++----- tests/RecordManagerTest/Finna/Record/LidoTest.php | 6 +++--- 4 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/RecordManager/Finna/Record/Ead3.php b/src/RecordManager/Finna/Record/Ead3.php index fddff610..ab0ea461 100644 --- a/src/RecordManager/Finna/Record/Ead3.php +++ b/src/RecordManager/Finna/Record/Ead3.php @@ -457,10 +457,10 @@ protected function addHierarchyTitles(array &$data, string $sequenceUnitId): voi { // Note: title_in_hierarchy is only needed if it differs from title. if ($this->getDriverParam('addIdToHierarchyTitle', true)) { - $data['title_in_hierarchy'] = trim("$sequenceUnitId " . $data['title']); + $data['title_in_hierarchy'] = [trim("$sequenceUnitId " . $data['title'])]; foreach (['fi', 'sv', 'en', 'se'] as $language) { if ('' !== ($langTitle = $data['title_' . $language . '_txt'] ?? '')) { - $data['title_in_hierarchy_' . $language . '_str'] = trim("$sequenceUnitId $langTitle"); + $data['title_in_hierarchy_' . $language . '_str_mv'] = [trim("$sequenceUnitId " . $langTitle)]; } } } diff --git a/src/RecordManager/Finna/Record/Lido.php b/src/RecordManager/Finna/Record/Lido.php index 0afa039a..610dfa38 100644 --- a/src/RecordManager/Finna/Record/Lido.php +++ b/src/RecordManager/Finna/Record/Lido.php @@ -172,8 +172,8 @@ class Lido extends \RecordManager\Base\Record\Lido */ protected $hierarchyFieldsInAllFields = [ 'is_hierarchy_title', 'hierarchy_parent_title', 'hierarchy_top_title', 'title_in_hierarchy', - 'title_in_hierarchy_en_str_', 'title_in_hierarchy_fi_str', 'title_in_hierarchy_se_str', - 'title_in_hierarchy_sv_str', + 'title_in_hierarchy_en_str_mv', 'title_in_hierarchy_fi_str_mv', 'title_in_hierarchy_se_str_mv', + 'title_in_hierarchy_sv_str_mv', ]; /** @@ -2280,10 +2280,12 @@ protected function addHierarchyTitles(array &$data): void { // Note: title_in_hierarchy is only needed if it differs from title. if ($this->getDriverParam('addIdToHierarchyTitle', true)) { - $data['title_in_hierarchy'] = trim($this->getIdentifier() . ' ' . $data['title']); + $data['title_in_hierarchy'] = [trim($this->getIdentifier() . ' ' . $data['title'])]; foreach (['fi', 'sv', 'en', 'se'] as $language) { if ('' !== ($langTitle = $data['title_' . $language . '_txt'] ?? '')) { - $data['title_in_hierarchy_' . $language . '_str'] = trim($this->getIdentifier() . ' ' . $langTitle); + $data['title_in_hierarchy_' . $language . '_str_mv'] = [ + trim($this->getIdentifier() . ' ' . $langTitle), + ]; } } } diff --git a/tests/RecordManagerTest/Finna/Record/Ead3Test.php b/tests/RecordManagerTest/Finna/Record/Ead3Test.php index 38d173d1..8f6616ca 100644 --- a/tests/RecordManagerTest/Finna/Record/Ead3Test.php +++ b/tests/RecordManagerTest/Finna/Record/Ead3Test.php @@ -569,9 +569,9 @@ public static function sksProvider(): array 'addIdToHierarchyTitle=true' => [ 'true', [ - 'no_lang' => '1 1 Sundvall Gustaf Edvard S 1:a) 1', - 'fi' => '1 1 Sundvall Gustaf Edvard S 1:a) 1', - 'sv' => '1 1 Sundvall Gustaf Edvard S 1:a) 1 swe', + 'no_lang' => ['1 1 Sundvall Gustaf Edvard S 1:a) 1'], + 'fi' => ['1 1 Sundvall Gustaf Edvard S 1:a) 1'], + 'sv' => ['1 1 Sundvall Gustaf Edvard S 1:a) 1 swe'], ], ], 'addIdToHierarchyTitle=false' => [ @@ -867,8 +867,8 @@ public function testSKS(string $addIdToHierarchyTitle, ?array $expectedTitleInHi ]; if (null !== $expectedTitleInHierarchy) { $expected['title_in_hierarchy'] = $expectedTitleInHierarchy['no_lang']; - $expected['title_in_hierarchy_fi_str'] = $expectedTitleInHierarchy['fi']; - $expected['title_in_hierarchy_sv_str'] = $expectedTitleInHierarchy['sv']; + $expected['title_in_hierarchy_fi_str_mv'] = $expectedTitleInHierarchy['fi']; + $expected['title_in_hierarchy_sv_str_mv'] = $expectedTitleInHierarchy['sv']; } $this->assertEquals( diff --git a/tests/RecordManagerTest/Finna/Record/LidoTest.php b/tests/RecordManagerTest/Finna/Record/LidoTest.php index 6a40c49c..d258df46 100644 --- a/tests/RecordManagerTest/Finna/Record/LidoTest.php +++ b/tests/RecordManagerTest/Finna/Record/LidoTest.php @@ -735,9 +735,9 @@ public function testLidoHierarchies() $fields['hierarchy_parent_title'] ); $this->assertEquals('testi-000000418', $fields['hierarchy_sequence']); - $this->assertEquals('testi-418 Testi joka puuttui', $fields['title_in_hierarchy']); - $this->assertEquals('testi-418 Testi joka puuttui', $fields['title_in_hierarchy_fi_str']); - $this->assertEquals('testi-418 The test that was missing', $fields['title_in_hierarchy_en_str']); + $this->assertEquals(['testi-418 Testi joka puuttui'], $fields['title_in_hierarchy']); + $this->assertEquals(['testi-418 Testi joka puuttui'], $fields['title_in_hierarchy_fi_str_mv']); + $this->assertEquals(['testi-418 The test that was missing'], $fields['title_in_hierarchy_en_str_mv']); $this->assertContains('Yksikkötestikokoelma; Kaikki testit kautta aikojen', $fields['allfields']); $this->assertContains('Puuttuvien testien kokoelma', $fields['allfields']); $this->assertContains('testi-418 Testi joka puuttui', $fields['allfields']);