From f4ac258398371a2be59a9cb033a1880222930947 Mon Sep 17 00:00:00 2001 From: tmikkonen <1330453+tmikkonen@users.noreply.github.com> Date: Thu, 22 Feb 2024 19:29:52 +0200 Subject: [PATCH] [FINNA-1246-1248] Add subfields & make first char uppercase for Uncontrolled Title in Record View --- module/Finna/src/Finna/RecordDriver/SolrMarc.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/module/Finna/src/Finna/RecordDriver/SolrMarc.php b/module/Finna/src/Finna/RecordDriver/SolrMarc.php index bbd09fb8277..e70f6db7275 100644 --- a/module/Finna/src/Finna/RecordDriver/SolrMarc.php +++ b/module/Finna/src/Finna/RecordDriver/SolrMarc.php @@ -2376,7 +2376,7 @@ public function getLanguageNotes() } /** - * Get uncontrolled title from field 740, subfield a. + * Get uncontrolled title from field 740, subfields a, n and p. * * @return array */ @@ -2384,12 +2384,13 @@ public function getUncontrolledTitle() { $results = []; foreach ($this->getMarcReader()->getFields('740') as $field) { - if ($subfield = $this->getSubfield($field, 'a')) { + foreach ($this->getSubfieldArray($field, ['a', 'n', 'p'], false) as $subfield) { $subfield = $this->stripTrailingPunctuation($subfield); if (($ind1 = $field['i1']) && ctype_digit($ind1)) { - $results[] = substr($subfield, $ind1); + $substr = substr($subfield, $ind1); + $results[] = mb_convert_case(mb_substr($substr, 0, 1), MB_CASE_TITLE) . mb_substr($substr, 1); } else { - $results[] = $this->stripTrailingPunctuation($subfield); + $results[] = $subfield; } } }