@@ -, +, @@ records usually) $ koha-mysql kohadev > SELECT * FROM import_records LIMIT 1; import_record_id http://kohadev.mydnsname.org:8080/cgi-bin/koha/opac-showmarc.pl?importid=20 biblionumber http://kohadev.mydnsname.org:8080/cgi-bin/koha/opac-showmarc.pl?id= --- opac/opac-showmarc.pl | 41 +++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 16 deletions(-) --- a/opac/opac-showmarc.pl +++ a/opac/opac-showmarc.pl @@ -41,27 +41,36 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user({ authnotrequired => ( C4::Context->preference("OpacPublic") ? 1 : 0 ), debug => 1, }); -my $biblionumber = $input->param('id'); -$biblionumber = int($biblionumber); -my $importid= $input->param('importid'); -my $view= $input->param('viewas') || 'marc'; -my $record_processor = Koha::RecordProcessor->new({ filters => 'ViewPolicy' }); +my $biblionumber = $input->param('id'); -my $record; -if ($importid) { - my ($marc) = GetImportRecordMarc($importid); - $record = MARC::Record->new_from_usmarc($marc); +unless ( $biblionumber ) { + print $input->redirect("/cgi-bin/koha/errors/400.pl"); + exit; } -else { - $record = GetMarcBiblio({ biblionumber => $biblionumber }); - my $framework = GetFrameworkCode($biblionumber); - $record_processor->options({ - interface => 'opac', - frameworkcode => $framework - }); + +my $biblio; +$biblio = Koha::Biblios->find( $biblionumber, { prefetch => [ 'metadata' ] } ); + +unless ( $biblio ) { + print $input->redirect('/cgi-bin/koha/errors/404.pl'); + exit; } +my $view= $input->param('viewas') || 'marc'; + +my $record_processor = Koha::RecordProcessor->new( + { + filters => 'ViewPolicy', + options => { + interface => 'opac', + frameworkcode => $biblio->frameworkcode + } + } +); + +my $record = $biblio->metadata->record; + if(!ref $record) { print $input->redirect("/cgi-bin/koha/errors/404.pl"); exit; --