From fb7c501ac21815919bc7712c3ff7635f20d6ef56 Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Wed, 4 May 2022 14:30:28 +0000 Subject: [PATCH] Bug 30678: Add OCLC_NO as option to OPACSearchForTitleIn Content-Type: text/plain; charset=utf-8 We need to pass OCLC_NO as key to C4::Output::parametrized_url. We get it from MARC21 035$a and strip the organizational code. Test plan: Add e.g. 62385712 in 035$a in a record. Add e.g. following link to pref OPACSearchForTitleIn: WorldCat (via OCLC number) Open that record on detail page. Click More searches. Follow that link. Signed-off-by: Marcel de Rooy --- opac/opac-ISBDdetail.pl | 3 +++ opac/opac-MARCdetail.pl | 3 +++ opac/opac-detail.pl | 3 +++ 3 files changed, 9 insertions(+) diff --git a/opac/opac-ISBDdetail.pl b/opac/opac-ISBDdetail.pl index 9335ea4ccd..05e06c1849 100755 --- a/opac/opac-ISBDdetail.pl +++ b/opac/opac-ISBDdetail.pl @@ -201,6 +201,8 @@ my $issn = $marcissns->[0] || ''; if (my $search_for_title = C4::Context->preference('OPACSearchForTitleIn')){ $dat->{title} =~ s/\/+$//; # remove trailing slash $dat->{title} =~ s/\s+$//; # remove trailing space + my $oclc_no = $record->subfield('035','a') // q{}; + $oclc_no =~ s/\([^)]*\)//; $search_for_title = parametrized_url( $search_for_title, { @@ -210,6 +212,7 @@ if (my $search_for_title = C4::Context->preference('OPACSearchForTitleIn')){ ISSN => $issn, CONTROLNUMBER => $marccontrolnumber, BIBLIONUMBER => $biblionumber, + OCLC_NO => $oclc_no, } ); $template->param('OPACSearchForTitleIn' => $search_for_title); diff --git a/opac/opac-MARCdetail.pl b/opac/opac-MARCdetail.pl index 0133784d39..444d9de8ad 100755 --- a/opac/opac-MARCdetail.pl +++ b/opac/opac-MARCdetail.pl @@ -352,6 +352,8 @@ my $issn = $marcissns->[0] || ''; if (my $search_for_title = C4::Context->preference('OPACSearchForTitleIn')){ $dat->{title} =~ s/\/+$//; # remove trailing slash $dat->{title} =~ s/\s+$//; # remove trailing space + my $oclc_no = $record->subfield('035','a') // q{}; + $oclc_no =~ s/\([^)]*\)//; $search_for_title = parametrized_url( $search_for_title, { @@ -361,6 +363,7 @@ if (my $search_for_title = C4::Context->preference('OPACSearchForTitleIn')){ ISSN => $issn, CONTROLNUMBER => $marccontrolnumber, BIBLIONUMBER => $biblionumber, + OCLC_NO => $oclc_no, } ); $template->param('OPACSearchForTitleIn' => $search_for_title); diff --git a/opac/opac-detail.pl b/opac/opac-detail.pl index 00c52eb5aa..af76cfbbcc 100755 --- a/opac/opac-detail.pl +++ b/opac/opac-detail.pl @@ -1175,6 +1175,8 @@ my $issn = $marcissns->[0] || ''; if (my $search_for_title = C4::Context->preference('OPACSearchForTitleIn')){ $dat->{title} =~ s/\/+$//; # remove trailing slash $dat->{title} =~ s/\s+$//; # remove trailing space + my $oclc_no = $record->subfield('035','a') // q{}; + $oclc_no =~ s/\([^)]*\)//; $search_for_title = parametrized_url( $search_for_title, { @@ -1184,6 +1186,7 @@ if (my $search_for_title = C4::Context->preference('OPACSearchForTitleIn')){ ISSN => $issn, CONTROLNUMBER => $marccontrolnumber, BIBLIONUMBER => $biblionumber, + OCLC_NO => $oclc_no, } ); $template->param('OPACSearchForTitleIn' => $search_for_title); -- 2.20.1