Koha/catalogue/showmarc.pl
Colin Campbell 5b6f89714d Bug 9684 : Correct path to compact.xsl
When try to display card view of retrieved record
error occurred as compact.xsl could not be found
script was constructing path as though it was opac

Also added fallback to en version if no xsl file
found under current lang as done in opac-showmarc.pl

Signed-off-by: Nicole C. Engard <nengard@bywatersolutions.com>
Test plan:

* Set sys pref to use CCSR
* Do a Z39.50 Search
* Click 'card' on one of the results
* confirm that there is no error.

All test pass

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
I am astonished that opacthemes affects Z39.50 search in
staff so this might be fixing a bigger problem.

Checked that clicking on Card works for both themes now
correctly after I confirmed the bug.
Also all views in OPAC were checked for both themes.

All tests and QA script pass.
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
2013-04-27 07:08:13 -04:00

84 lines
2.6 KiB
Perl
Executable file

#!/usr/bin/perl
# Koha library project www.koha-community.org
# Copyright 2007 Liblime
# Parts copyright 2010 BibLibre
#
# This file is part of Koha.
#
# Koha is free software; you can redistribute it and/or modify it under the
# terms of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
#
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with Koha; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
use strict;
use warnings;
# standard or CPAN modules used
use CGI qw(:standard);
use DBI;
use Encode;
# Koha modules used
use C4::Context;
use C4::Output;
use C4::Auth;
use C4::Biblio;
use C4::ImportBatch;
use XML::LibXSLT;
use XML::LibXML;
my $input= new CGI;
my $biblionumber= $input->param('id');
my $importid= $input->param('importid');
my $view= $input->param('viewas')||'';
my $record;
if ($importid) {
my ($marc) = GetImportRecordMarc($importid);
$record = MARC::Record->new_from_usmarc($marc);
}
else {
$record =GetMarcBiblio($biblionumber);
}
if($view eq 'card') {
my $themelang = '/' . C4::Templates::_current_language();
my $xmlrecord= $importid? $record->as_xml(): GetXmlBiblio($biblionumber);
my $xslfile =
C4::Context->config('intrahtdocs') . '/prog' . $themelang . "/xslt/compact.xsl";
if ( ! -f $xslfile && $themelang ne '/en' ) {
$xslfile=~s#$themelang#/en#;
}
my $parser = XML::LibXML->new();
my $xslt = XML::LibXSLT->new();
my $source = $parser->parse_string($xmlrecord);
my $style_doc = $parser->parse_file($xslfile);
my $stylesheet = $xslt->parse_stylesheet($style_doc);
my $results = $stylesheet->transform($source);
my $newxmlrecord = $stylesheet->output_string($results);
print $input->header(-charset => 'UTF-8'), Encode::encode_utf8($newxmlrecord);
}
else {
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
{
template_name => "catalogue/showmarc.tmpl",
query => $input,
type => "intranet",
authnotrequired => 0,
flagsrequired => { catalogue => 1 },
debug => 1,
}
);
$template->param( MARC_FORMATTED => $record->as_formatted );
output_html_with_http_headers $input, $cookie, $template->output;
}