Bug 13225: Z39.50 result Card View doesn't work for UNIMARC
authorFrédéric Demians <f.demians@tamil.fr>
Fri, 7 Nov 2014 18:23:12 +0000 (19:23 +0100)
committerTomas Cohen Arazi <tomascohen@gmail.com>
Mon, 10 Nov 2014 14:59:48 +0000 (11:59 -0300)
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>

catalogue/showmarc.pl
koha-tmpl/intranet-tmpl/prog/en/xslt/UNIMARC_compact.xsl

index 2c690fc..97bc6fe 100755 (executable)
@@ -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(
index 32e8aec..50681b4 100644 (file)
@@ -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>