Browse Source

Bug 11826: Use XSLT handler object in showmarc, Record.pm

Modifies showmarc and opac-showmarc to use new XSLT handler.
Removes cardview.pl as obsolete script.
Modifies C4/Record.pm and a typo in the test Record.t.

Test plan:
[1] catalogue/showmarc: Go to Cataloging. Search. Click Card.
[2] opac-showmarc: Go to opac detail, MARC view.
    Open URL for plain view in new tab.
    Change URL: Change viewas=html to viewas=card
[3] Verify that there are no references in the codebase to cardview.pl
[4] C4/Record.pm: Run the Record.t test in db_dependent.
    This test uses marc2modsxml, triggering the change.
    Additional: export to MODS from opac-detail.

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Views Ok. Test pass. No more cardview. No koha-qa errors

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
MM-OPAC/theme_dep
Marcel de Rooy 8 years ago
committed by Galen Charlton
parent
commit
3bcc032181
  1. 12
      C4/Record.pm
  2. 60
      catalogue/cardview.pl
  3. 13
      catalogue/showmarc.pl
  4. 20
      opac/opac-showmarc.pl
  5. 2
      t/db_dependent/Record.t

12
C4/Record.pm

@ -28,11 +28,10 @@ use MARC::File::XML; # marc2marcxml, marcxml2marc, changeEncoding
use MARC::Crosswalk::DublinCore; # marc2dcxml
use Biblio::EndnoteStyle;
use Unicode::Normalize; # _entity_encode
use XML::LibXSLT;
use XML::LibXML;
use C4::Biblio; #marc2bibtex
use C4::Csv; #marc2csv
use C4::Koha; #marc2csv
use C4::XSLT ();
use YAML; #marcrecords2csv
use Text::CSV::Encoded; #marc2csv
@ -306,14 +305,7 @@ sub _transformWithStylesheet {
# grab the XML, run it through our stylesheet, push it out to the browser
my $xmlrecord = marc2marcxml($marc);
my $xslfile = C4::Context->config('intrahtdocs') . $stylesheet;
my $parser = XML::LibXML->new();
my $xslt = XML::LibXSLT->new();
my $source = $parser->parse_string($xmlrecord);
my $style_doc = $parser->parse_file($xslfile);
my $style_sheet = $xslt->parse_stylesheet($style_doc);
my $results = $style_sheet->transform($source);
my $newxmlrecord = $style_sheet->output_string($results);
return ($newxmlrecord);
return C4::XSLT::engine->transform($xmlrecord, $xslfile);
}
sub marc2endnote {

60
catalogue/cardview.pl

@ -1,60 +0,0 @@
#!/usr/bin/perl
use strict;
# 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 warnings; FIXME - Bug 2505
use CGI;
use XML::LibXSLT;
use XML::LibXML;
use C4::Koha;
use C4::Auth;
use C4::Biblio;
use C4::Languages qw(getTranslatedLanguages);
my $query=new CGI;
my ($template, $borrowernumber, $cookie)
= get_template_and_user({template_name => "opac-detail.tmpl",
query => $query,
type => "opac",
authnotrequired => 1,
flagsrequired => {borrow => 1},
});
# load the languages
my @languages_options = getTranslatedLanguages($query);
my $languages_count = @languages_options;
if($languages_count > 1){
$template->param(languages => \@languages_options);
}
my $biblionumber=$query->param('biblionumber');
$template->param(biblionumber => $biblionumber);
# grab the XML, run it through our stylesheet, push it out to the browser
my $xmlrecord = GetXmlBiblio($biblionumber);
#my $xslfile = "/home/kohacat/etc/xslt/MARC21slim2HTML.xsl";
#my $xslfile = "/home/kohacat/etc/xslt/MARC21slim2English.xsl";
my $xslfile = C4::Context->config('intranetdir')."/koha-tmpl/intranet-tmpl/prog/en/xslt/compact.xsl";
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 "Content-type: text/html\n\n";
print $newxmlrecord;

13
catalogue/showmarc.pl

@ -9,7 +9,7 @@
#
# 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
# Foundation; either version 3 of the License, or (at your option) any later
# version.
#
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
@ -34,8 +34,7 @@ use C4::Output;
use C4::Auth;
use C4::Biblio;
use C4::ImportBatch;
use XML::LibXSLT;
use XML::LibXML;
use C4::XSLT ();
my $input= new CGI;
my $biblionumber= $input->param('id');
@ -63,13 +62,7 @@ if($view eq 'card') {
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);
my $newxmlrecord = C4::XSLT::engine->transform($xmlrecord, $xslfile);
print $input->header(-charset => 'UTF-8'), Encode::encode_utf8($newxmlrecord);
}
else {

20
opac/opac-showmarc.pl

@ -1,19 +1,12 @@
#!/usr/bin/perl
# $Id: showmarc.pl,v 1.1.2.1 2007/06/18 21:57:23 rangi Exp $
# Koha library project www.koha-community.org
# Licensed under the GPL
# Copyright 2007 Liblime
#
# 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
# Foundation; either version 3 of the License, or (at your option) any later
# version.
#
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
@ -37,8 +30,7 @@ use C4::Output;
use C4::Auth;
use C4::Biblio;
use C4::ImportBatch;
use XML::LibXSLT;
use XML::LibXML;
use C4::XSLT ();
my $input = new CGI;
my $biblionumber = $input->param('id');
@ -78,13 +70,7 @@ if ($view eq 'card' || $view eq 'html') {
$xslfilename = "$htdocs/prog/$lang/xslt/$xslfile" unless ( -f $xslfile );
$xslfilename = "$htdocs/prog/en/xslt/$xslfile" unless ( $lang ne 'en' && -f $xslfilename );
my $parser = XML::LibXML->new();
my $xslt = XML::LibXSLT->new();
my $source = $parser->parse_string($xmlrecord);
my $style_doc = $parser->parse_file($xslfilename);
my $stylesheet = $xslt->parse_stylesheet($style_doc);
my $results = $stylesheet->transform($source);
my $newxmlrecord = $stylesheet->output_string($results);
my $newxmlrecord = C4::XSLT::engine->transform($xmlrecord, $xslfilename);
print $input->header(-charset => 'UTF-8'), Encode::encode_utf8($newxmlrecord);
}
else { #view eq marc

2
t/db_dependent/Record.t

@ -81,7 +81,7 @@ my $test4xml=qq(<?xml version="1.0" encoding="UTF-8"?>
</mods>
);
is ($mods, $test4xml, "testing marc2mosxml");
is ($mods, $test4xml, "testing marc2modsxml");
$marc->append_fields(MARC::Field->new(
'100', ' ', ' ', a => 'Rowling, J.K.'

Loading…
Cancel
Save