Browse Source

Bug 13225: Z39.50 result Card View doesn't work for UNIMARC

This patch fix UNIMARC Card View on Z39.50 result page. The valid XSL was
there: UNIMARC_compact.xml, but were not selected (a regression). This patch
use themelanguage to access XSL file, anticipating a intranet new theme in
future.

TO TEST: Before applying this patch, do a Z39.50 search, and try to display a
biblio record card view: meaningless. Retry after applying this patch.

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Tested in a UNIMARC installation, works as described.

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
3.18.x
Frédéric Demians 10 years ago
committed by Tomas Cohen Arazi
parent
commit
5bcaa91001
  1. 17
      catalogue/showmarc.pl
  2. 3
      koha-tmpl/intranet-tmpl/prog/en/xslt/UNIMARC_compact.xsl

17
catalogue/showmarc.pl

@ -55,15 +55,14 @@ if(!ref $record) {
}
if($view eq 'card') {
my $themelang = '/' . C4::Languages::getlanguage($input);
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 $newxmlrecord = C4::XSLT::engine->transform($xmlrecord, $xslfile);
print $input->header(-charset => 'UTF-8'), Encode::encode_utf8($newxmlrecord);
my $xml = $importid ? $record->as_xml(): GetXmlBiblio($biblionumber);
my $xsl = C4::Context->preference('marcflavour') eq 'UNIMARC'
? 'UNIMARC_compact.xsl' : 'compact.xsl';
my $htdocs = C4::Context->config('intrahtdocs');
my ($theme, $lang) = C4::Templates::themelanguage($htdocs, $xsl, 'intranet', $input);
$xsl = "$htdocs/$theme/$lang/xslt/$xsl";
print $input->header(-charset => 'UTF-8'),
Encode::encode_utf8(C4::XSLT::engine->transform($xml, $xsl));
}
else {
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(

3
koha-tmpl/intranet-tmpl/prog/en/xslt/UNIMARC_compact.xsl

@ -41,9 +41,6 @@
<xsl:if test="@tag='200'">
<span class="title"><xsl:value-of select="."/></span>
</xsl:if>
<xsl:if test="@tag='200'">
<span class="titlemain"><xsl:value-of select="."/></span><br/>
</xsl:if>
<xsl:if test="@tag='205'">
<xsl:value-of select="."/>
</xsl:if>

Loading…
Cancel
Save