From dbb1cbb2b27bb812af02aa6c4bbbbaa2f7db9b6e Mon Sep 17 00:00:00 2001 From: Aleisha Amohia Date: Mon, 1 May 2023 22:38:57 +0000 Subject: [PATCH] Bug 33348: (follow-up) Fix if no 008 defined And copy fix across to Zebra search as well. Signed-off-by: Lucas Gass Signed-off-by: Martin Renvoize Signed-off-by: Roman Dolny --- C4/AuthoritiesMarc.pm | 20 ++++++++++---------- Koha/SearchEngine/Elasticsearch/Search.pm | 16 +++++++++------- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm index 1656a2ba9b..4fe55cd34b 100644 --- a/C4/AuthoritiesMarc.pm +++ b/C4/AuthoritiesMarc.pm @@ -323,17 +323,17 @@ sub SearchAuthorities { if ( C4::Context->preference('ShowHeadingUse') ) { # checking valid heading use my $f008 = $authrecord->field('008'); - my $pos14to16 = substr( $f008->data, 14, 3 ); - my $main = substr( $pos14to16, 0, 1 ); - $newline{main} = 1 if $main eq 'a'; - my $subject = substr( $pos14to16, 1, 1); - $newline{subject} = 1 if $subject eq 'a'; - my $series = substr( $pos14to16, 2, 1 ); - $newline{series} = 1 if $series eq 'a'; + if ($f008) { + my $pos14to16 = substr( $f008->data, 14, 3 ); + my $main = substr( $pos14to16, 0, 1 ); + $newline{main} = 1 if $main eq 'a'; + my $subject = substr( $pos14to16, 1, 1 ); + $newline{subject} = 1 if $subject eq 'a'; + my $series = substr( $pos14to16, 2, 1 ); + $newline{series} = 1 if $series eq 'a'; + } } - - $newline{authtype} = defined($thisauthtype) ? - $thisauthtype->authtypetext : ''; + $newline{authtype} = defined($thisauthtype) ? $thisauthtype->authtypetext : ''; $newline{summary} = $summary; $newline{even} = $counter % 2; $newline{reported_tag} = $reported_tag; diff --git a/Koha/SearchEngine/Elasticsearch/Search.pm b/Koha/SearchEngine/Elasticsearch/Search.pm index df46134bb7..f7fd99aaf5 100644 --- a/Koha/SearchEngine/Elasticsearch/Search.pm +++ b/Koha/SearchEngine/Elasticsearch/Search.pm @@ -251,13 +251,15 @@ sub search_auth_compat { if ( C4::Context->preference('ShowHeadingUse') ) { # checking valid heading use my $f008 = $marc->field('008'); - my $pos14to16 = substr( $f008->data, 14, 3 ); - my $main = substr( $pos14to16, 0, 1 ); - $result{main} = 1 if $main eq 'a'; - my $subject = substr( $pos14to16, 1, 1); - $result{subject} = 1 if $subject eq 'a'; - my $series = substr( $pos14to16, 2, 1 ); - $result{series} = 1 if $series eq 'a'; + if ($f008) { + my $pos14to16 = substr( $f008->data, 14, 3 ); + my $main = substr( $pos14to16, 0, 1 ); + $result{main} = 1 if $main eq 'a'; + my $subject = substr( $pos14to16, 1, 1 ); + $result{subject} = 1 if $subject eq 'a'; + my $series = substr( $pos14to16, 2, 1 ); + $result{series} = 1 if $series eq 'a'; + } } # Reimplementing BuildSummary is out of scope because it'll be hard -- 2.39.5