From 556721e86a31f4e17dd382504bf1f666f151ff42 Mon Sep 17 00:00:00 2001 From: Joshua Ferraro Date: Fri, 21 Mar 2008 22:32:19 -0400 Subject: [PATCH] Experimental XSLT-based display of results and details pages To enable, create two new YesNo sysprefs: XSLTDetailsDisplay and XSLTResultsDisplay, and set them to ON. Feature to be expanded in a future version, this experimental code is for proof of concept only and doesn't introduce any changes if sysprefs are not created. Signed-off-by: Joshua Ferraro --- C4/Auth.pm | 4 + C4/Search.pm | 9 +- C4/XSLT.pm | 152 +++++++ .../intranet-tmpl/prog/en/modules/about.tmpl | 3 +- koha-tmpl/opac-tmpl/prog/en/css/opac.css | 12 +- .../prog/en/modules/opac-detail.tmpl | 12 +- .../prog/en/modules/opac-results.tmpl | 15 +- .../prog/en/xslt/MARC21slim2OPACDetail.xsl | 393 ++++++++++++++++++ .../prog/en/xslt/MARC21slim2OPACResults.xsl | 318 ++++++++++++++ .../prog/en/xslt/MARC21slimUtils.xsl | 65 +++ koha-tmpl/opac-tmpl/prog/famfamfam/BK.png | Bin 0 -> 593 bytes koha-tmpl/opac-tmpl/prog/famfamfam/CF.png | Bin 0 -> 620 bytes koha-tmpl/opac-tmpl/prog/famfamfam/MM.png | Bin 0 -> 760 bytes koha-tmpl/opac-tmpl/prog/famfamfam/MP.png | Bin 0 -> 804 bytes koha-tmpl/opac-tmpl/prog/famfamfam/MU.png | Bin 0 -> 385 bytes koha-tmpl/opac-tmpl/prog/famfamfam/SR.png | Bin 0 -> 658 bytes koha-tmpl/opac-tmpl/prog/famfamfam/VM.png | Bin 0 -> 653 bytes opac/opac-detail.pl | 6 + 18 files changed, 976 insertions(+), 13 deletions(-) create mode 100644 C4/XSLT.pm create mode 100644 koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACDetail.xsl create mode 100644 koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACResults.xsl create mode 100644 koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slimUtils.xsl create mode 100644 koha-tmpl/opac-tmpl/prog/famfamfam/BK.png create mode 100644 koha-tmpl/opac-tmpl/prog/famfamfam/CF.png create mode 100644 koha-tmpl/opac-tmpl/prog/famfamfam/MM.png create mode 100644 koha-tmpl/opac-tmpl/prog/famfamfam/MP.png create mode 100644 koha-tmpl/opac-tmpl/prog/famfamfam/MU.png create mode 100644 koha-tmpl/opac-tmpl/prog/famfamfam/SR.png create mode 100644 koha-tmpl/opac-tmpl/prog/famfamfam/VM.png diff --git a/C4/Auth.pm b/C4/Auth.pm index 7e32b4b85a..8d96e597bd 100755 --- a/C4/Auth.pm +++ b/C4/Auth.pm @@ -275,6 +275,7 @@ sub get_template_and_user { canreservefromotherbranches => C4::Context->preference('canreservefromotherbranches'), intranetreadinghistory => C4::Context->preference("intranetreadinghistory"), noItemTypeImages => C4::Context->preference("noItemTypeImages"), + singleBranchMode => C4::Context->preference("singleBranchMode"), ); } else { @@ -329,6 +330,9 @@ sub get_template_and_user { 'item-level_itypes' => C4::Context->preference('item-level_itypes'), 'Version' => C4::Context->preference('Version'), yuipath => C4::Context->preference("yuipath"), + singleBranchMode => C4::Context->preference("singleBranchMode"), + XSLTResultsDisplay => C4::Context->preference("XSLTResultsDisplay"), + XSLTDetailsDisplay => C4::Context->preference("XSLTDetailsDisplay"), ); } $template->param(listloop=>[{shelfname=>"Freelist", shelfnumber=>110}]); diff --git a/C4/Search.pm b/C4/Search.pm index d5a44aca07..2b343a9764 100644 --- a/C4/Search.pm +++ b/C4/Search.pm @@ -24,6 +24,7 @@ use Lingua::Stem; use C4::Search::PazPar2; use XML::Simple; use C4::Dates qw(format_date); +use C4::XSLT; use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $DEBUG); @@ -1489,7 +1490,13 @@ s/\[(.?.?.?.?)$tagsubf(.*?)]/$1$subfieldvalue$2\[$1$tagsubf$2]/g; push @available_items_loop, $available_items->{$key} } -# last check for norequest : if itemtype is notforloan, it can't be reserved either, whatever the items + # XSLT processing of some stuff + if (C4::Context->preference("XSLTResultsDisplay") ) { + my $newxmlrecord = XSLTParse4Display($oldbiblio->{biblionumber},'Results'); + $oldbiblio->{XSLTResultsRecord} = $newxmlrecord; + } + + # last check for norequest : if itemtype is notforloan, it can't be reserved either, whatever the items $can_place_holds = 0 if $itemtypes{ $oldbiblio->{itemtype} }->{notforloan}; $oldbiblio->{norequests} = 1 unless $can_place_holds; diff --git a/C4/XSLT.pm b/C4/XSLT.pm new file mode 100644 index 0000000000..52cb83c33f --- /dev/null +++ b/C4/XSLT.pm @@ -0,0 +1,152 @@ +package C4::XSLT; +# Copyright (C) 2006 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 +# 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., 59 Temple Place, +# Suite 330, Boston, MA 02111-1307 USA + +use C4::Context; +use C4::Branch; +use C4::Items; +use C4::Koha; +use C4::Biblio; +use XML::LibXML; +use XML::LibXSLT; + +use strict; + +use vars qw($VERSION @ISA @EXPORT); + +BEGIN { + require Exporter; + $VERSION = 0.03; + @ISA = qw(Exporter); + @EXPORT = qw( + &XSLTParse4Display + ); +} + +=head1 NAME + +C4::XSLT - Functions for displaying XSLT-generated content + +=head1 FUNCTIONS + +=head1 transformMARCXML4XSLT + +=head2 replaces codes with authorized values in a MARCXML record + +=cut + +sub transformMARCXML4XSLT { + my ($biblionumber) = @_; + my $record = GetMarcBiblio($biblionumber); + my $biblio = GetBiblioData($biblionumber); + my $frameworkcode = GetFrameworkCode($biblionumber); + my $tagslib = &GetMarcStructure(1,$frameworkcode); + my @fields = $record->fields(); + my $list_of_authvalues = getAuthorisedValues4MARCSubfields($frameworkcode); + for my $authvalue (@$list_of_authvalues) { + for my $field ( $record->field($authvalue->{tagfield}) ) { + my @newSubfields = (); + for my $subfield ( $field->subfields() ) { + my ($code,$data) = @$subfield; + unless ($code eq $authvalue->{tagsubfield}) { + push ( @newSubfields, $code, $data ); + } else { + my $newvalue = GetAuthorisedValueDesc( $authvalue->{tagfield}, $code, $data, '', $tagslib ); + push ( @newSubfields, $code, $newvalue ); + } + } + my $newField = MARC::Field->new( + $authvalue->{tagfield}, + $field->indicator(1), + $field->indicator(2), + $authvalue->{tagsubfield} => @newSubfields + ); + $field->replace_with($newField); + } + } + return $record; +} + +=head1 getAuthorisedValues4MARCSubfields + +=head2 returns an array of hash refs for authorised value tag/subfield combos for a given framework + +=cut + +sub getAuthorisedValues4MARCSubfields { + my ($frameworkcode) = @_; + my @results; + my $dbh = C4::Context->dbh; + my $sth = $dbh->prepare("SELECT DISTINCT tagfield,tagsubfield FROM marc_subfield_structure WHERE authorised_value IS NOT NULL AND authorised_value!='' AND frameworkcode=?"); + $sth->execute($frameworkcode); + while (my $result = $sth->fetchrow_hashref()) { + push @results, $result; + } + return \@results; +} + +sub XSLTParse4Display { + my ($biblionumber,$type) = @_; + # grab the XML, run it through our stylesheet, push it out to the browser + my $record = transformMARCXML4XSLT($biblionumber); + my $itemsxml = buildKohaItemsNamespace($biblionumber); + my $xmlrecord = $record->as_xml(); + $xmlrecord =~ s/\<\/record\>/$itemsxml\<\/record\>/; + my $xslfile = C4::Context->config('intranetdir')."/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPAC$type.xsl"; + my $parser = XML::LibXML->new(); + # don't die when you find &, >, etc + $parser->recover_silently(1); + 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); + return $newxmlrecord; +} + +sub buildKohaItemsNamespace { + my ($biblionumber) = @_; + my @items = C4::Items::GetItemsInfo($biblionumber); + my $branches = GetBranches(); + my $itemtypes = GetItemTypes(); + my $xml; + for my $item (@items) { + my $status; + if ($item->{onloan}) { + $status = "On loan"; + } else { + $status = "available"; + } + $xml.="".$branches->{$item->{homebranch}}->{'branchname'}.""."$status"; + } + return "".$xml.""; +} + + + +1; +__END__ + +=head1 NOTES + +=head1 AUTHOR + +Joshua Ferraro + +=cut diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/about.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/about.tmpl index 36651af320..ee77f83fdf 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/about.tmpl +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/about.tmpl @@ -58,7 +58,7 @@
-

Special thanks to the following libraries

+

Special thanks to the following organizations

Development team

diff --git a/koha-tmpl/opac-tmpl/prog/en/css/opac.css b/koha-tmpl/opac-tmpl/prog/en/css/opac.css index c70711d8a6..e8c6dc2550 100644 --- a/koha-tmpl/opac-tmpl/prog/en/css/opac.css +++ b/koha-tmpl/opac-tmpl/prog/en/css/opac.css @@ -214,7 +214,7 @@ input[type=submit]:active, input[type=button], input[type=reset] { } td.resultscontrol { - background-color : #EFF1DC; + background-color : #EEE; vertical-align : middle; padding : 3px 3px 5px 5px; } @@ -235,7 +235,7 @@ td,th { } th { - background-color:#EFF1DC; + background-color:#EEE; font-weight : bold; padding : 2px 23px; text-align : center; @@ -535,7 +535,7 @@ a .term { } #search-facets h4 { - background-color : #EFF1DC; + background-color : #EEE; border-bottom : 1px solid #e8e8e8; font-size : 90%; margin : 0; @@ -842,7 +842,7 @@ a:active.current { } a:link.nav { - background-color: #EFF1DC; + background-color: #EEE; border: 1px solid #CCCC99; color: #3366CC; font-weight: bold; @@ -851,7 +851,7 @@ a:link.nav { } a:visited.nav { - background-color: #EFF1DC; + background-color: #EEE; border: 1px solid #CCCC99; color: #3366CC; font-weight: bold; @@ -1549,4 +1549,4 @@ a#MARCview, a#ISBDview, a#Normalview { #shelfbrowser dl img {vertical-align:bottom;padding:2px;background:#fff;margin-top:0;} #shelfbrowser em {display:block;font-weight:bold;margin-bottom:5px;font-style:normal;} #shelfbrowser dl div {float:left;} -#shelfbrowser img {margin-top:3.5em;} \ No newline at end of file +#shelfbrowser img {margin-top:3.5em;} diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tmpl b/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tmpl index 661c13d972..7b63eca2b1 100755 --- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tmpl +++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tmpl @@ -27,7 +27,13 @@ Cover Image
- + + + +
+

Normal View ">MARC View ">ISBD View +
+

By ">

[ @@ -61,7 +67,6 @@

-

Edition statement:/

@@ -140,6 +145,7 @@
+
@@ -177,7 +183,7 @@ " title="" alt="" /> - (&shelfbrowse_itemnumber=#shelfbrowser">Browse Shelf) + (&shelfbrowse_itemnumber=#shelfbrowser">Browse Shelf) Not for loan diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-results.tmpl b/koha-tmpl/opac-tmpl/prog/en/modules/opac-results.tmpl index f74e8e5079..c6f3e0a0e8 100644 --- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-results.tmpl +++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-results.tmpl @@ -170,6 +170,9 @@ $(document).ready(function(){ + + + ">.01.TZZZZZZZ.jpg" alt="" class="thumbnail" /> @@ -191,12 +194,19 @@ $(document).ready(function(){ , (modified on )

+

- Copies available at: + Copies available: - + + + + + + + [">] @@ -220,6 +230,7 @@ $(document).ready(function(){ ">

+ diff --git a/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACDetail.xsl b/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACDetail.xsl new file mode 100644 index 0000000000..18312da694 --- /dev/null +++ b/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACDetail.xsl @@ -0,0 +1,393 @@ + + + + + + + + + + + + + + + + + + + + BK + SE + + + BK + MM + CF + MP + VM + MU + + + + + + + Book + Serial + + + Book + Mixed Materials + Computer File + Map + Visual Material + Music + + + + + +
+ +

+ + + abfghk + + +

+
+ + Normal View MARC View Card View (ISBD) +
+ + + + +
by + + + + + /cgi-bin/koha/opac-search.pl?authid= + + + /cgi-bin/koha/opac-search.pl?q=au: + + + + + .; + + + + + + + /cgi-bin/koha/opac-search.pl?authid= + + + /cgi-bin/koha/opac-search.pl?q=au: + + + + .; + + + + + + + /cgi-bin/koha/opac-search.pl?authid= + + + /cgi-bin/koha/opac-search.pl?q=au: + + + + .; + + +
+
+
+ +
+ + +

Type: + +

+
+ +

Series: + + + + + av + + + + + .; + + + + + + + + av + + + + + + .; + +

+
+ +

Publisher: + + + bcg + + +

+
+ +

ISBN: + + + +

+
+ + +

ISSN: + + + +

+
+ + +

Uniform titles: + + + + + + + + + + + + + + + + +

+
+ + +

Related Subjects: + + + + + /cgi-bin/koha/opac-search.pl?authid= + + + /cgi-bin/koha/opac-search.pl?q=su: + + + + + + abcdvxyz + + + + + + + | + + + +

+
+ + +

Online Resources: + + + + + y3z + + + + + | + + + +

+
+ + + + +

+ + + Continues: + + + Continues in part: + + + Supersedes: + + + Supersedes in part: + + + Formed by the union: ... and: ... + + + Absorbed: + + + Absorbed in part: + + + Separated from: + + + + /cgi-bin/koha/opac-search.pl?q= + + atxwg + + +

+ + +

+
+
+ +
+
+ +
+ +
+ + + + + + aq + + + + :,;/ + + + + + + + + + + + + + + + + + cdn + + + + + + + acdeq + + + + + + + + bc + + + + + + + + + + n + n + fghkdlmor + + + + + p + p + fghkdlmor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACResults.xsl b/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACResults.xsl new file mode 100644 index 0000000000..a3025c7051 --- /dev/null +++ b/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACResults.xsl @@ -0,0 +1,318 @@ + + + + + + + + + + + + + + + + + + + + + BK + SE + + + BK + MM + CF + MP + VM + MU + + + + + + + Book + Serial + + + Book + Mixed Materials + Computer File + Map + Visual Material + Music + + + + + + + + + + /cgi-bin/koha/opac-detail.pl?biblionumber= + + + + + + + + b + afghk + + + + + abfgk + + + + + + + + + + + + + + : + + + + b + b + afghk + + + + + + . + + +

+ + + + + by + + + + . + + + ; + + + + + + + + . + + + ; + + + + + + + + . + + + ; + + + + + + +

+ + + Type: +
+
+ + Publisher: + + + bcg + + + + +
+
+ + + Copies available at: + + + + ( + + ) + + + + + + On loan ( + + ) + + +
+ +
+ + + + + aq + + + + :,;/ + + + + + + + + + + + + + + + + + cdn + + + + + + + acdeq + + + + + + + + + bc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + n + n + fghkdlmor + + + + + p + p + fghkdlmor + + + + + + + + + + + + + + + +
diff --git a/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slimUtils.xsl b/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slimUtils.xsl new file mode 100644 index 0000000000..acfe598f5a --- /dev/null +++ b/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slimUtils.xsl @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/koha-tmpl/opac-tmpl/prog/famfamfam/BK.png b/koha-tmpl/opac-tmpl/prog/famfamfam/BK.png new file mode 100644 index 0000000000000000000000000000000000000000..b0f4dd7928cc5714e002fd2a6e8f2faac0073f00 GIT binary patch literal 593 zcmV-X0l6k>CGhc0FIuigU9U^L+D`6bSr zIEp(+L4eIgaZT(|{B!*DbrTYc1t0J9*MLJm+n zOEVloE20S^g6s|1rvjjuW1W$TV;&TbK2|slm=91)Q{X{Kg;c!Saglq7xo8`(>{A}G zw@`8gScq(adr(4@;>^%e<~7+uNMv&?8L0#%0yj~@DW&fPImKeyFHkRKuNERO3(SOB z?S)niZbFEN`0<|w+LjBKR#DU7F3d&rQGGY&Y)Fv0w002i=Jm_>x9jBX>wg3XCKK`E f>xbvJ_5i;DeEQXvyE?}U00000NkvXXu0mjfKqCEw literal 0 HcmV?d00001 diff --git a/koha-tmpl/opac-tmpl/prog/famfamfam/CF.png b/koha-tmpl/opac-tmpl/prog/famfamfam/CF.png new file mode 100644 index 0000000000000000000000000000000000000000..99d532e8b1750115952f97302a92d713c0486f97 GIT binary patch literal 620 zcmV-y0+aoTP)~H+MJzd|s z^YP1Hc07G_>)Lgir!F1{Qn4GcTg%?koHo<=1qRN{}nPDolOeI^o4N5I>! zU$N=L=sg~ zDx#dOA*B0N~cqPsWI(^rbbkh)DS0_H_UN0C4l_kvWIm2#Kyy6%BCh z(yIUf003&1xdx>t$*eR2ZvXxT0001Z_R$y3Iju92q*wg58};}zm(OaAH=p|y0002M zh5O5#fxp|~jc?yi@+7$`d4Q6Hl%z;WiWG??NXR{Hx%)pMd~SE0000OQI literal 0 HcmV?d00001 diff --git a/koha-tmpl/opac-tmpl/prog/famfamfam/MM.png b/koha-tmpl/opac-tmpl/prog/famfamfam/MM.png new file mode 100644 index 0000000000000000000000000000000000000000..1c856cd61593e944e09238a6c2cee7e10cb42c56 GIT binary patch literal 760 zcmV^u|ySI)$xo}?> za_FHfThhJj`M)!)y1Ken7-L>YP?_pt$X`6n=F1=cYufX?^1}RqJ{J3UFP&@z zECfL?sZm6*)=sM9@pvfG($ccT7;|1yt+;54&pQ5j$#EP+q*g1XYJxR_XwSX$w3G!2 z8vst-96|&vgaZNsoZQ_szDA8;W-G4J{Ce716A*!AbK_$I;eFp<0>BspfZNc}Fj7}n zH&}UjW2aN>p_1)q;jW_`Z~sC}RT&uigd@Cv23*T7n=wUqsU zAEO$8$8UyegB1-$AM!t|C?yj;*oTW|EL?#jJ$3auL-+@vJEf(KsTqgop6ei4H zEY=EI2UM$i0>P`>>10YEOo!2OKty@8ZJUOcD&T+xtAv;r<;?W~3dPa{g6#)Fg1eo# zu8R?iO9bIJ?eC7zl$eLYAzvQk(Asl2#3=h?9%!wXum1F)FEJyIwUEtb@jRFLvtd?p zluawwQ6HTH4*aalAvIN#h=QjS>hGUEu&8mvykvA^t`rPj{#@u;b@0}uB@3EX)K94= q=1oUSfD%DjgQzmS1APn^1O5Pr0d*Bb`9~`N0000mbpQb1@7I~O+ue5CWtZi#AZox@gcwb{Xkx^Rf;Ty8yn6DWhJV4kC*wg94<7Vt zlteKm5+jKLV^qM1yt2HO4YZw^&a^Wfzb_m+@y40e_0^+M6ajz$03Zl}fU=sqfA9W} z@#^~O(a%3QB{YI^J_A4y)M^1_vjjn1H`Mc5t@6>y50A!C6seTL>`UqQ7p$DgY@K|> zQm^as;HM{#Qwj<3}(>R-AM4&+cd0t49%y2X`UaCBJg8YmB)K#uA{Z>9n zOp8>WCg#&r06`o8oz6gaIn`fY2FR)ssCr@3rc|5f%`bIJO$zbt__PK3gH51Sff`H}0ZWac9&q~*( zO@qNscV0VSU%X#sYO9)Qx4M=(eR(m}UFhondELHSnO2hr&mMO3 zv6gmw!P2y#u0c!?LPO88NyxOTj>XWm>*77F&55fo9Z?)iynObdfA;SdwVRl$W~G3* zEGt!2+1T-%ja32&!XdoMS_mM#IQK#{6D_nvjYu`GlvO3XdE)qYJJ;7klCE>?a@fNhGaV ftv%qM$TQzJ6;XjO8erVL00000NkvXXu0mjfw}q7O literal 0 HcmV?d00001 diff --git a/koha-tmpl/opac-tmpl/prog/famfamfam/SR.png b/koha-tmpl/opac-tmpl/prog/famfamfam/SR.png new file mode 100644 index 0000000000000000000000000000000000000000..6a2ecce1b85eaa9084b427ee2c5226e2296eaeb8 GIT binary patch literal 658 zcmV;D0&V??P)oVs((xWgD$)EF}_d~6|E9cYZTvaqk~9`i&BW97*P>v z@lDk@Xl;b%^t%HQ(pa0tz@5kM+;h(T<_N&ip(~wEOB0DiJ{F5{;c!^;_xs1dg=jRo z3WY*KAQ0euKA+@K0;yC=8jr^rydICoSglqd_{QV$a4whY=|O=zI1-7hhr=Og4T=Ck z5O8*O_S@lbByBd^lf44TWKv2W^LH=<&(F_6aj;k{L?;9b7K?>5nM{(sFqO3)3}ZrBV@HFj%2boa`NCnylwer*m5<6vU%rtuL2L)a!Nd zJP*qIOD>n6?i;$@!fv-8Tdme9+l?I|%bm;R7`!3)<-bP$-VIIGvB6*%vHYw+%Da)t sWG@c=a1S2nbh=||dPK1BKbT#A0Qk`HN6lbD;Q#;t07*qoM6N<$f^gU==>Px# literal 0 HcmV?d00001 diff --git a/koha-tmpl/opac-tmpl/prog/famfamfam/VM.png b/koha-tmpl/opac-tmpl/prog/famfamfam/VM.png new file mode 100644 index 0000000000000000000000000000000000000000..b0ce7bb198a3b268bd634d2b26e9b710f3797d37 GIT binary patch literal 653 zcmV;80&@L{P)WO3(`_cf+b25@DJ#zdQm}8GzWtq2-QnZ8W6mB^kfeK5f%S{ zUW%tGMCwrwic~ZrQcG=4f?5bkV+3dRk8hw6bk~y$KX#b!y*J4EJ~>;dRASqrSu;ZpM>?P}K~6AT zWv6Dmq?v&9LdXC(m%WCO6ma_di$R(v$@ad_>@R41N3N5lSJq9@6CGhX84-$%Xrd_6 z;){?{E|Ytt5$S-&Au>t4wDlIxdkfe-a22LMj``McG};r8@{GsRPm*+8fFey6C)@ifDBXVyTw(N@Xd41b45OFg6x_QA zpwLiigyy~cVoPxW^r~C7ZQpr%>1$*HKmv~AY-qJw4;gUecS--wnqslISSS=^KA&Ic n@BK|Onfz#3R%n{$a)0j^sqv5F(1NTL00000NkvXXu0mjf3S}fX literal 0 HcmV?d00001 diff --git a/opac/opac-detail.pl b/opac/opac-detail.pl index d0083da584..9b10d20db5 100755 --- a/opac/opac-detail.pl +++ b/opac/opac-detail.pl @@ -34,6 +34,7 @@ use C4::Amazon; use C4::Review; use C4::Serials; use C4::Members; +use C4::XSLT; my $query = new CGI; my ( $template, $borrowernumber, $cookie ) = get_template_and_user( @@ -48,6 +49,11 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user( my $biblionumber = $query->param('biblionumber') || $query->param('bib'); $template->param( biblionumber => $biblionumber ); +# XSLT processing of some stuff +if (C4::Context->preference("XSLTResultsDisplay") ) { + my $newxmlrecord = XSLTParse4Display($biblionumber,'Detail'); + $template->param('XSLTBloc' => $newxmlrecord); +} # change back when ive fixed request.pl my @all_items = &GetItemsInfo( $biblionumber, 'opac' ); -- 2.39.5