Bugzilla – Attachment 13134 Details for
Bug 8992
Add an interfacing with the idref webservice
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 8992: Interfacing with the Idref webservice
Bug-8992-Interfacing-with-the-Idref-webservice.patch (text/plain), 30.29 KB, created by
Jonathan Druart
on 2012-10-31 12:42:20 UTC
(
hide
)
Description:
Bug 8992: Interfacing with the Idref webservice
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2012-10-31 12:42:20 UTC
Size:
30.29 KB
patch
obsolete
>From 91cddc5c574b4ac3cd66abc0c8c00b991bce49e0 Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@biblibre.com> >Date: Wed, 31 Oct 2012 11:10:44 +0100 >Subject: [PATCH] Bug 8992: Interfacing with the Idref webservice > >On the detail page (in the opac), if the biblio comes from the Sudoc, >you must have a link (on the right of the author link) which open a popup with >informations about this author (publications by role). > >To test: > >1/ Modify your zebra conf in order to index the ppn: > ccl.properties: > Identifier-standard 1=1007 4=6 > ident Identifier-standard > >record.abs: (biblios) > melm 009 Identifier-standard:w,Number-standard:n > >2/ Switch on the Idref system preference > >3/ Simulate a SUDOC record: > Fill a 7..$3 field with a ppn (032581270 for example). > Fill the 009 field with an integer > >4/ Go to the opac detail page of this notice. >You should see the IDREF link. >If you click on it, a popup displays a loading icon and after a few >seconds (depending of the productivity of the authority :)), a list of >roles. For each role, a table displays all his corresponding publications. > >5/ On the right, you have 2 links: 1 for a koha search for this result >and 1 for a SUDOC link >--- > C4/Biblio.pm | 6 ++ > installer/data/mysql/updatedatabase.pl | 16 ++++ > .../en/modules/admin/preferences/web_services.pref | 7 ++ > koha-tmpl/opac-tmpl/prog/en/css/datatables.css | 42 ++++----- > koha-tmpl/opac-tmpl/prog/en/css/opac.css | 41 +++++++++ > koha-tmpl/opac-tmpl/prog/en/includes/greybox.inc | 7 ++ > koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt | 10 ++- > koha-tmpl/opac-tmpl/prog/en/modules/opac-idref.tt | 66 ++++++++++++++ > koha-tmpl/opac-tmpl/prog/images/first-disabled.png | Bin 0 -> 843 bytes > koha-tmpl/opac-tmpl/prog/images/first.png | Bin 0 -> 720 bytes > koha-tmpl/opac-tmpl/prog/images/last-disabled.png | Bin 0 -> 826 bytes > koha-tmpl/opac-tmpl/prog/images/last.png | Bin 0 -> 737 bytes > koha-tmpl/opac-tmpl/prog/images/next-disabled.png | Bin 0 -> 866 bytes > koha-tmpl/opac-tmpl/prog/images/next.png | Bin 0 -> 736 bytes > koha-tmpl/opac-tmpl/prog/images/prev-disabled.png | Bin 0 -> 862 bytes > koha-tmpl/opac-tmpl/prog/images/prev.png | Bin 0 -> 745 bytes > opac/opac-detail.pl | 13 +++ > opac/opac-idref.pl | 91 ++++++++++++++++++++ > 18 files changed, 277 insertions(+), 22 deletions(-) > create mode 100644 koha-tmpl/opac-tmpl/prog/en/includes/greybox.inc > create mode 100644 koha-tmpl/opac-tmpl/prog/en/modules/opac-idref.tt > create mode 100644 koha-tmpl/opac-tmpl/prog/images/first-disabled.png > create mode 100644 koha-tmpl/opac-tmpl/prog/images/first.png > create mode 100644 koha-tmpl/opac-tmpl/prog/images/last-disabled.png > create mode 100644 koha-tmpl/opac-tmpl/prog/images/last.png > create mode 100644 koha-tmpl/opac-tmpl/prog/images/next-disabled.png > create mode 100644 koha-tmpl/opac-tmpl/prog/images/next.png > create mode 100644 koha-tmpl/opac-tmpl/prog/images/prev-disabled.png > create mode 100644 koha-tmpl/opac-tmpl/prog/images/prev.png > create mode 100755 opac/opac-idref.pl > >diff --git a/C4/Biblio.pm b/C4/Biblio.pm >index afb60d3..6a8d68c 100644 >--- a/C4/Biblio.pm >+++ b/C4/Biblio.pm >@@ -1834,9 +1834,14 @@ sub GetMarcAuthors { > } > > # other subfields >+ my $unimarc3; > for my $authors_subfield (@subfields) { > next if ( $authors_subfield->[0] eq '9' ); > >+ # unimarc3 contains the $3 of the author for UNIMARC. >+ # For french academic libraries, it's the "ppn", and it's required for idref webservice >+ $unimarc3 = $authors_subfield->[1] if $marcflavour eq 'UNIMARC' and $authors_subfield->[0] =~ /3/; >+ > # don't load unimarc subfields 3, 5 > next if ( $marcflavour eq 'UNIMARC' and ( $authors_subfield->[0] =~ /3|5/ ) ); > >@@ -1872,6 +1877,7 @@ sub GetMarcAuthors { > push @marcauthors, { > MARCAUTHOR_SUBFIELDS_LOOP => \@subfields_loop, > authoritylink => $subfield9, >+ unimarc3 => $unimarc3 > }; > } > return \@marcauthors; >diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl >index 7ab48ee..8e9509b 100755 >--- a/installer/data/mysql/updatedatabase.pl >+++ b/installer/data/mysql/updatedatabase.pl >@@ -6020,6 +6020,22 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { > SetVersion ($DBversion); > } > >+ >+ >+ >+$DBversion = "3.09.00.XXX"; >+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { >+ $dbh->do(qq{ >+ INSERT INTO systempreferences (variable,value,explanation,options,type) >+ VALUES('IDREF','0','Disable/enable the IDREF webservice from the OPAC detail page.',NULL,'YesNo') >+ }); >+ print "Upgrade to $DBversion done (Add system preference IDREF))\n"; >+ SetVersion($DBversion); >+} >+ >+ >+ >+ > =head1 FUNCTIONS > > =head2 TableExists($table) >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/web_services.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/web_services.pref >index 7244675..a3ad67f 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/web_services.pref >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/web_services.pref >@@ -44,3 +44,10 @@ Web services: > - pref: SvcMaxReportRows > class: integer > - rows of a report requested via the reports web service. >+ IDREF: >+ - >+ - pref: IDREF >+ choices: >+ yes: Enable >+ no: Disable >+ - the IDREF webservice from the opac detail page >diff --git a/koha-tmpl/opac-tmpl/prog/en/css/datatables.css b/koha-tmpl/opac-tmpl/prog/en/css/datatables.css >index e7b11bd..2a80b5a 100644 >--- a/koha-tmpl/opac-tmpl/prog/en/css/datatables.css >+++ b/koha-tmpl/opac-tmpl/prog/en/css/datatables.css >@@ -3,23 +3,23 @@ input.search_init { > } > .sorting_asc { > padding-right: 19px; >- background: url("../../img/asc.gif") no-repeat scroll right center #EEEEEE; >+ background: url("../../images/asc.gif") no-repeat scroll right center #EEEEEE; > } > .sorting_desc { > padding-right: 19px; >- background: url("../../img/desc.gif") no-repeat scroll right center #EEEEEE; >+ background: url("../../images/desc.gif") no-repeat scroll right center #EEEEEE; > } > .sorting { > padding-right: 19px; >- background: url("../../img/ascdesc.gif") no-repeat scroll right center #EEEEEE; >+ background: url("../../images/ascdesc.gif") no-repeat scroll right center #EEEEEE; > } > .sorting_asc_disabled { > padding-right: 19px; >- background: url("../../img/datatables/sort_asc_disabled.png") no-repeat scroll right center #EEEEEE; >+ background: url("../../images/datatables/sort_asc_disabled.png") no-repeat scroll right center #EEEEEE; > } > .sorting_desc_disabled { > padding-right: 19px; >- background: url("../../img/datatables/sort_desc_disabled.png") no-repeat scroll right center #EEEEEE; >+ background: url("../../images/datatables/sort_desc_disabled.png") no-repeat scroll right center #EEEEEE; > } > .sorting_disabled { > padding-right: 19px; >@@ -83,25 +83,25 @@ div.dataTables_paginate { > color : #0000CC; > } > .paging_full_numbers span.paginate_button.first { >- background-image : url('../../img/first.png'); >+ background-image : url('../../images/first.png'); > background-repeat: no-repeat; > background-position : 2px center; > padding-left : 2em; > } > .paging_full_numbers span.paginate_button.previous { >- background-image : url('../../img/prev.png'); >+ background-image : url('../../images/prev.png'); > background-repeat: no-repeat; > background-position : 2px center; > padding-left : 2em; > } > .paging_full_numbers span.paginate_button.next { >- background-image : url('../../img/next.png'); >+ background-image : url('../../images/next.png'); > background-repeat: no-repeat; > background-position : right center; > padding-right : 2em; > } > .paging_full_numbers span.paginate_button.last { >- background-image : url('../../img/last.png'); >+ background-image : url('../../images/last.png'); > background-repeat: no-repeat; > background-position : right center; > border-right : 1px solid #686868; >@@ -147,31 +147,31 @@ div.dataTables_paginate.paging_four_button { > width: 16px; > } > .paginate_disabled_first { >- background-image: url("../../img/first-disabled.png"); >+ background-image: url("../../images/first-disabled.png"); > } > .paginate_enabled_first { >- background-image: url("../../img/first.png"); >+ background-image: url("../../images/first.png"); > cursor: pointer; > } > .paginate_disabled_previous { >- background-image: url("../../img/prev-disabled.png"); >+ background-image: url("../../images/prev-disabled.png"); > } > .paginate_enabled_previous { >- background-image: url("../../img/prev.png"); >+ background-image: url("../../images/prev.png"); > cursor: pointer; > } > .paginate_disabled_next { >- background-image: url("../../img/next-disabled.png"); >+ background-image: url("../../images/next-disabled.png"); > } > .paginate_enabled_next { >- background-image: url("../../img/next.png"); >+ background-image: url("../../images/next.png"); > cursor: pointer; > } > .paginate_disabled_last { >- background-image: url("../../img/last-disabled.png"); >+ background-image: url("../../images/last-disabled.png"); > } > .paginate_enabled_last { >- background-image: url("../../img/last.png"); >+ background-image: url("../../images/last.png"); > cursor: pointer; > } > >@@ -248,16 +248,16 @@ table.display thead th { > width: 19px; > } > .paginate_disabled_previous { >- background-image: url("../../img/datatables/back_disabled.jpg"); >+ background-image: url("../../images/datatables/back_disabled.jpg"); > } > .paginate_enabled_previous { >- background-image: url("../../img/datatables/back_enabled.jpg"); >+ background-image: url("../../images/datatables/back_enabled.jpg"); > } > .paginate_disabled_next { >- background-image: url("../../img/datatables/forward_disabled.jpg"); >+ background-image: url("../../images/datatables/forward_disabled.jpg"); > } > .paginate_enabled_next { >- background-image: url("../../img/datatables/forward_enabled.jpg"); >+ background-image: url("../../images/datatables/forward_enabled.jpg"); > } > .spacer { > clear: both; >diff --git a/koha-tmpl/opac-tmpl/prog/en/css/opac.css b/koha-tmpl/opac-tmpl/prog/en/css/opac.css >index 7ab95e0..5fdcc07 100644 >--- a/koha-tmpl/opac-tmpl/prog/en/css/opac.css >+++ b/koha-tmpl/opac-tmpl/prog/en/css/opac.css >@@ -2820,3 +2820,44 @@ body#opac-main #opacmainuserblockmobile { > .tagweight9 { > font-size: 30px; > } >+ >+div.pager { >+ background-color : #E8E8E8; >+ border : 1px solid #BCBCBC; >+ -moz-border-radius : 5px; >+ display : inline-block; >+ font-size : 85%; >+ padding : .3em .5em .3em .5em; >+ margin : .4em 0; >+} >+div.pager img { >+ vertical-align : middle; >+} >+div.pager img.last { >+ padding-right: 5px; >+} >+div.pager input.pagedisplay { >+ border : 0; >+ background-color : transparent; >+ font-weight: bold; >+ text-align : center; >+} >+a.localimage img { >+ border : 1px solid #0000CC; >+ margin : 0 .5em; >+ padding : .3em; >+} >+div.pager p { >+ margin: 0; >+} >+ >+ >+/* IDREF */ >+#idref h2.role { >+ background-color: #DDDEEE; >+ cursor: pointer; >+} >+ >+#idref table { >+ margin: 0; >+} >diff --git a/koha-tmpl/opac-tmpl/prog/en/includes/greybox.inc b/koha-tmpl/opac-tmpl/prog/en/includes/greybox.inc >new file mode 100644 >index 0000000..b955b44 >--- /dev/null >+++ b/koha-tmpl/opac-tmpl/prog/en/includes/greybox.inc >@@ -0,0 +1,7 @@ >+<script type="text/javascript"> >+ var GB_ROOT_DIR = "[% themelang %]/lib/greybox/"; >+</script> >+<script type="text/javascript" src="[% themelang %]/lib/greybox/AJS.js"></script> >+<script type="text/javascript" src="[% themelang %]/lib/greybox/AJS_fx.js"></script> >+<script type="text/javascript" src="[% themelang %]/lib/greybox/gb_scripts.js"></script> >+<link href="[% themelang %]/lib/greybox/gb_styles.css" rel="stylesheet" type="text/css" /> >diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt b/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt >index 1d0523a..c942b2b 100644 >--- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt >+++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt >@@ -11,6 +11,7 @@ > [% END %] > [% IF ( OpacStarRatings != 'disable' ) %]<script type="text/javascript" src="/opac-tmpl/prog/en/lib/jquery/plugins/jquery.rating.js"></script> > <link rel="stylesheet" type="text/css" href="/opac-tmpl/prog/en/css/jquery.rating.css" />[% END %] >+[% INCLUDE greybox.inc %] > > [% IF ( OpacHighlightedWords ) %]<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.highlight-3.js"></script>[% END %] > <script type="text/JavaScript" language="JavaScript"> >@@ -345,7 +346,11 @@ YAHOO.util.Event.onContentReady("furtherm", function () { > [% XSLTBloc %] > [% ELSE %] > <h1 class="title">[% title |html %][% IF ( subtitle ) %] <span class="subtitle">[% FOREACH subtitl IN subtitle %][% subtitl.subfield |html %] [% END %]</span>[% END %]</h1> >- [% IF ( author ) %]<h5 class="author">by <a href="/cgi-bin/koha/opac-search.pl?q=au:[% author |url %]">[% author |html %]</a></h5>[% END %] >+ [% IF ( author ) %] >+ <h5 class="author"> >+ by <a href="/cgi-bin/koha/opac-search.pl?q=au:[% author |url %]">[% author |html %]</a> >+ </h5> >+ [% END %] > > <span class="results_summary">[% UNLESS ( item_level_itypes ) %] > [ >@@ -369,6 +374,9 @@ YAHOO.util.Event.onContentReady("furtherm", function () { > [% IF (MARCAUTHOR.authoritylink) %] > <a class='authlink' href="/cgi-bin/koha/opac-authoritiesdetail.pl?authid=[% MARCAUTHOR.authoritylink %]"><img style="vertical-align:middle" height="15" width="15" src="/opac-tmpl/prog/images/filefind.png"></a> > [% END %] >+ [% IF ( IDREF and MARCAUTHOR.unimarc3) %] >+ <a href="/cgi-bin/koha/opac-idref.pl?unimarc3=[% MARCAUTHOR.unimarc3 %]" title="IDREF" rel="gb_page_center[600,500]">IDREF</a> >+ [% END %] > [% UNLESS ( loop.last ) %]|[% END %] > [% END %] > </span> >diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-idref.tt b/koha-tmpl/opac-tmpl/prog/en/modules/opac-idref.tt >new file mode 100644 >index 0000000..6adbbc5 >--- /dev/null >+++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-idref.tt >@@ -0,0 +1,66 @@ >+[% INCLUDE 'doc-head-open.inc' %] >+[% IF ( LibraryNameTitle ) %][% LibraryNameTitle %][% ELSE %]Koha online[% END %] catalog › Your search IDREF for ppn [% unimarc3 %] >+[% INCLUDE 'doc-head-close.inc' %] >+ <link rel="stylesheet" href="[% themelang %]/css/datatables.css" /> >+ <script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.dataTables.min.js"></script> >+ [% INCLUDE 'datatables-strings.inc' %] >+ <script type="text/javascript" src="[% themelang %]/js/datatables.js"></script> >+ <script type="text/javascript"> >+ $(document).ready(function (){ >+ $("table").dataTable($.extend(true, {}, dataTablesDefaults, { >+ "oLanguage": { >+ "sSearch": _("Search all columns:") >+ }, >+ 'bFilter': false, >+ 'sPaginationType': 'four_button', >+ 'aoColumnDefs': [ >+ { 'aTargets': [-1, -2], 'bSortable': false } >+ ], >+ 'aLengthMenu': [[10, 25, 50, 100, 250, 500, 1000, -1], [10, 25, 50, 100, 250, 500, 1000, _("All")]], >+ })); >+ >+ $(".role").click(function(){ >+ var docs_node = $(this).parent().find("div.docs"); >+ if ( $(docs_node).is(":visible") ) { >+ $(".docs").hide(); >+ } else { >+ $(".docs").hide(); >+ docs_node.show(); >+ } >+ }); >+ $(".docs").hide(); >+ }); >+ </script> >+</head> >+<body> >+<div id="idref"> >+ [% IF error %] >+ This ppn is not found on the idref service. >+ [% ELSE %] >+ [% FOREACH role IN content %] >+ <div> >+ <h2 class="role" title="Click to expand this role">[% role.role_name %] ([% role.count %])</h2> >+ <div class="docs"> >+ <table> >+ <thead> >+ <th>Citation</th> >+ <th>Koha</th> >+ <th>Sudoc</th> >+ </thead> >+ <tbody> >+ [% FOREACH doc IN role.docs %] >+ <tr> >+ <td>[% doc.citation %]</td> >+ <td><a href="/cgi-bin/koha/opac-search.pl?q=kw,phr=[% doc.ppn %]" target="_blank">Koha</a></td> >+ <td><a href="http://www.sudoc.fr/[% doc.ppn %]" target="_blank">Sudoc</a></td> >+ </tr> >+ [% END %] >+ </tbody> >+ </table> >+ </div> >+ </div> >+ [% END %] >+ [% END %] >+</div> >+[% INCLUDE 'opac-bottom.inc' %] >+ >diff --git a/koha-tmpl/opac-tmpl/prog/images/first-disabled.png b/koha-tmpl/opac-tmpl/prog/images/first-disabled.png >new file mode 100644 >index 0000000000000000000000000000000000000000..fdf2106cf24f9e6536907061ea9be1945552c635 >GIT binary patch >literal 843 >zcmV-R1GM~!P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004XF*Lt006JZ >zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!-AP12RCwBA >z{Qv(y12ULAd9oBEBcn7>Tog$2L*+jL@oOM{nwy*Z3|T!u05QT00BYm`YS0i96El~T >zl+@zo<uzbqW77c1fB*jd#-~r8F1&pC^4gm>Z%zW0-vAo)1*8ukfWQWTGy~a&y1Ke9 >z;^N{FKtt5HxVRWNI5-$U@;`q3VEFv`GsBZ7Pj0<>^=iePJ9qW~Ejyo+lk){2fLOq$ >z0BzRM(Q%QGkSJ18QsM#H%<${iFNUvQzk&?_@qq?2@bU4f{r&s52#6UTJb3UOsPzm$ >z05J;-3rhhdU4R;sfmo8Aot@#`yLSw~fB$Cq_wOGVgV^WJonrvXGYAO@u>oBn3G~*} >zBS(%r1qdJ}pefQoo3%tmMb$u>K~9}CX%fSdB}?D|b?w?UhBIf*FuZ>Knt_v(lR-g2 >zK@CW20bM5z5I`UUM0t3447j<u!G1*sAm@WL@7lEsF81x)HwFO#0g#*l(CeZA0mK4| >zDppoj4Up|$zI*{|g5je_k20J-eHyMA<Q-7B0KEZ{*8mFf0|XEgaykI9fd;}20I`t) >z$N*TZfWigD1_&S~prVgJfg2#FfkGRm2&CD}%#5L=qy)tRQ1pTV85m19KzacJ2;_p- >zA3uJ)08A+000Joz5fOpM0LaNOLqL3xnx{{nf(*C-N}T`!1PX(v&!0cP2DJSaFfi4C >zam^4PAI|_yfnXYBI7kc>c)-NOaPi{BTR_9Efs!^r05Nadw(awwLx=t|Gc*4NMw2lx >zU9brX3c_8$#Kgn^Ox6sbSOVF+W5<p!Krhb*YTgG-&Nl%92$m9W0A0ZevT@IzJrU~a >z>S~~r$Is8t07`Yh^w03<(Ic?UfByVg!NS6_2b3Q`dI16mB{Kmj4WL)dfwUG-qXCEy >z)BtkH4IsV%)OZc(B5-B`<pYpDfB<5|mYqSV6O>4Ra{SO}{RpJN*%_!2B|8HI7y#v+ >VkuA4ftNj1~002ovPDHLkV1ks|VH^Me > >literal 0 >HcmV?d00001 > >diff --git a/koha-tmpl/opac-tmpl/prog/images/first.png b/koha-tmpl/opac-tmpl/prog/images/first.png >new file mode 100644 >index 0000000000000000000000000000000000000000..6f11fcb086b1bfa51bc5070ca45fac0a988c624c >GIT binary patch >literal 720 >zcmV;>0x$iEP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004XF*Lt006JZ >zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!Vo5|nR5;6} >zlS^+BQ547f0sI7f4p_Q$!@|Vwx--6F!p6i!Q&	anYDUW`HQBO=|;{NKLAi)JR+D >z2+}kbI#7m(KwIcg7;qRE7@!>ITpohD^Ctgf=H~o==W*|y0)VM;-LQd9lR=YF)677| >z!Jh8V_;KSkP5LJrlF9S+j0qkk+2iPm7~x{#{$ZSbvzK9J-4zqYVC)27V7~717pTZd >znit9v$VwYJS3ROyLxp^?0)a!0U)oMn7(0Xv0eUoZ@gH)t)d5_J+J%bT22oSJ)g^nf >zqQZVCEIYOm2+<P&_Jw6*=Ak)XX+fdd0->rB;rB+cID%~N1o%g50=A<=fWgC_GFUb) >z%s4&22M=t~3G+RMgR^pz#KbcfK)ZtsdJ$j@d{400GnQJeAz+sPu#&f$`6hKh0J%~V >zq(%oWs|qZyzh}{lfSK@dRK#JSxg@DDP3^*cD+kP0j(npKkSQvp3bk_uYtD5My##O+ >z;RpcDs9R5c#9;NFP5{z^GN_^r%PX%(0OOZ~7+aNFP*XZk{E2|i#E`vI`YjCrsfz|V >zndEsDXoqvug2CxaF}ZvhdOaY6!{9q~KO+jO!o5Vk0qt%NcD}`cvVR;6QTNzYGWq-= >zUX+?7V0e7VLW2m6_>T!vT6W8eRsOC$*+0hNMWWwDsLfA)S*X-WV71;M{bCz<v<Oa~ >zSHSFW$#eA9?~62kl^2{LYSq2T2g51I2@;tJ_8iNK;PppffnMTgEg$~A%Hxme;j64^ >z{-u|BZd+k#t6f~QFyb?_gPk*bnA=SJ-;e2kp7SrPKM4}2E#B7v0000<MNUMnLSTZm >Co<+<6 > >literal 0 >HcmV?d00001 > >diff --git a/koha-tmpl/opac-tmpl/prog/images/last-disabled.png b/koha-tmpl/opac-tmpl/prog/images/last-disabled.png >new file mode 100644 >index 0000000000000000000000000000000000000000..e3815b5f55add82f1db9114a095d1bd776742650 >GIT binary patch >literal 826 >zcmV-A1I7G_P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004XF*Lt006JZ >zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!%t=H+RCwBA >z{Qv(y12UL0Wr`F~Oq!9AQ54AK2Z;gsAA!_sAby&goBIq|JwO04!VCav<N>lZ#KpzU >zrKF^^czAdW*x1-KK=R+ef4}kh^XCgMUc9*W_U+q~K(QM@gT8?D0R#}(fXS05^8nd~ >zy1Ke9Km#Jg#KhFNxVRWNI5<GIGyM4Rg8^s&!{f(~Z@qr~dc~bPclH3)p9dKN5I`(Y >zmuP@AOG-)>DJm-R0BvUY_3IbImoH#T7(jfW!3=zSd}^02T>`0Lc<|uCcc9c6fB<3^ >z78aHQO1da1DJ283BuMeelP4MY`T4=N|NHk3Y}mJN-#`X10M)a-di6>Y=&GkjjvRRk >z5I{`8z>=1bkkA4-8>IQ;$Bzs<ckX1ke*HQFEPN(Sn#8bd*)p&<I5{~P<mKhn*xA{& >zK!FVqKrBE)6ck_}KmYvs6Ko?$BghaCTSG$wC6+)g5fl^zF%5uN6d-_DfG*%?Wo6X> >znh5tZ%;p0J4lulX_YQ6-hz40AARqwZgG}ZJ2p}e84ajU}W@d)pzkf3@F)@L~VB#Pe >z6eb`!5C8}uCQu>)2FMMN(||4k+rq-a0#;B|RK#FnVuE5gC=5WZ0=nb|(Dfey0tgg{ >zuYmz~0Tg&3Ntg{KB_&}0f(#TD6@|M36jo23JONp70hBrc0tl22p1yqf@)|G<Zt?Q+ >zs(}<27Z<}dgEYm)#)4e{ipFQpo-tg!c<~lc?ixrhKmajs+qUiVp+krM1O56Nn97WS >zA<PB}WuVKz27qW#00UzRta-<d9bbT6o(<Hz510~f0t65X)NeO{lAIuod-m*!P*+!1 >zgQh%&zkmNSym|8ml#IbP1Nkd}0lWuj@C}e&fB=GLCTM=p0464LpqLiWc2GQPfD8cQ >z8$huOKv!M^YDURS00G2EC_97XL7@!_Fd!QvI|Bq501}dz-y{)%cmMzZ07*qoM6N<$ >Ef;ulvi2wiq > >literal 0 >HcmV?d00001 > >diff --git a/koha-tmpl/opac-tmpl/prog/images/last.png b/koha-tmpl/opac-tmpl/prog/images/last.png >new file mode 100644 >index 0000000000000000000000000000000000000000..72079357614b4254b163a5cac766093d1f99bbe7 >GIT binary patch >literal 737 >zcmV<70v`Q|P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004XF*Lt006JZ >zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!b4f%&R5;6} >zlS^+BQ547f0sI7f4p_Q$!%lo8-5FmoVPoQ=sVgVd*hOQ6%m7hLo7M&@3DuxNYNSOv >z1!)=!1<Di<Xo2z?5T*>za-4I45g$8m^55K?|L?r+odSTVNnJ96LXt|7TGI4L>d~Fz >z&-h8>1xd<>>vgSt=Y;X^$Jv9(As-4y`R%<J`^J-EW^7e0#$fDkfRXv4)tje6he@tb >zse>SPp?5wYYBW2LD^|g`7v>f>k`%^{A!C3N&EeR0q1EmI9<kGhs?Y^q(pkGt?gX&| >z+kv29b{-)_NdVXvmW`RmX2)&`ia$C~s122`wINq+%aDytA9sJXfbA#{pt7^a43>?j >zT<^fuCti3LD9UEdoCoe2BcvKUvD7KhHa~-21gL%Aj#%s&OGVR_$6iSuSoaqp%eN%J >z76DWmU8pyEP^yWrwDz7wF9N262N52Jg#ie_jHv7Leqfv#&`?`&#}Fpfom5)T>7B!> >zWsOHK0qlpu1b_k9E1Iu8-65F`u4B0T$PKrdAs|z3NmX=VY5BDbP=DEtvNfR%4Y5Zu >z5VMpOD@qkb3GkT!aIm<Uc(w+#*&?@~vbYmWCRc&M07wQ6<tFB2K_o)+O*%~4>-Gn* >z`85iZ>7zVE#RF?u>-GjXzTT2IfyTsX6XN-%yiPPHr0n_^E8Hzpe7MH(L!#e?D90zS >zP^g}fN@{04Qcb!flJ%iEo~?q;Y!zl{=dXt}`IHwd0cyqO;QYY^WD0dM6YM#f=E3C+ >z!2-R=&FDY;{gfv^)4f+|?c7Tj^US!+(gqX%T+i_HIx{<~voklC*uOv1|9t14Z-oeY >T<X^Ql00000NkvXXu0mjfFR4u9 > >literal 0 >HcmV?d00001 > >diff --git a/koha-tmpl/opac-tmpl/prog/images/next-disabled.png b/koha-tmpl/opac-tmpl/prog/images/next-disabled.png >new file mode 100644 >index 0000000000000000000000000000000000000000..58b03409bfbe94b6eca9d45b3442245664d4b754 >GIT binary patch >literal 866 >zcmV-o1D*VdP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004XF*Lt006JZ >zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!^hrcPRCwBA >z{Qv(y12UL0Wr`F~Od7}(1!8_iMn(o8|09t78pwW{lauodSv^1iF~SU(Jb5w?kkXKl >zkT3^gEgl{o12#4`4UpXT@855H`t<3-%a<>&y?y)kBv8+d+}zwRAUS{l0viC*3^d(P >zM@Pp+TwFXtR8&-ro12?~gM)(sY5>ERFJBlQKYo1c)vH%4?%cVv2dMr$&^2EG0*D3b >z5)F`Mpv^@}N=iIHn;Cxn`o-||>sPQOD=RC5n3xy?FE6j!-@kv0fSBR_{rlg6QfB}H >zh*?-zSPE#X3s7USva+%yNb|F25O0DM{`>cj;p4}T48MQ>X5i!FV-OM&VgtHD66mU@ >zhYufq3J^d{K&MDcN=j-0ZBPSg2Ktp@&YU@5C&R$(*|Wi}dGqEC11BdZgMxyB8qj-M >zAiV$q!~_fjQJ{YfKz{!D^C#F=P`J#UI~S}8<N^?wH*X%8|Lxm120=kVkdOgLFF*h> >zfuaf&+Ax2E0LTCkUbt`}!;c?7z-*8~ixw?n`0(Ka12Bd_Vj4gf@B;)8$O~{=Kr}2` >znVFfv1_A>PEDqy?G=peRn1Iv*1Q5szAAz>q067ih3YcP$g5u(0a1?@K;m@Bx3?(Hc >z3`|T+48XJiGUNu(o{s<l1oFabP$B^Z9w>l7rh+t=mX?D33*v)p1Q`YjSS~IuhNn-T >zg2XO>^a2DBv!|ygDBwhZSOpk3!oX-^FfuX%YX-RngdH6n!J1`cWWbt%(RT}|ehbim >zQvd<PylvaI&j$}4{10^6@7J$i8v_kt1BEguY(Oyr@(w#YJ2>P)=>w?#3((86f$H}G >zlk-i000O5(pyC@ZUcBH0h4`L5dm_};)zyHBi-Dh?A8ZKFU{Eq<xOnm6Enrxz0EWpP >zP<{aE1qdK`W&-9y9#GT(1JWEwYXO~Z07~MZzym1;8gv2ZnrlFel9>Pkh!I<M22#?X >sL;{LusQgDD`!$gL6sQp;I|Bq506C7S@8*npX8-^I07*qoM6N<$g03K4OaK4? > >literal 0 >HcmV?d00001 > >diff --git a/koha-tmpl/opac-tmpl/prog/images/next.png b/koha-tmpl/opac-tmpl/prog/images/next.png >new file mode 100644 >index 0000000000000000000000000000000000000000..4a2f9d4e4a81857f509d85bbe46936c99709cd6f >GIT binary patch >literal 736 >zcmV<60w4W}P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004XF*Lt006JZ >zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!a!Eu%R5;6} >zQ%i3WQ55bE@E7nqVCm8gyH;z`orxP0HYP5by0Me`=%O(~W-L)mo7M&@37XW}rlwS! >z4j`tnP@oJCf$}I61{?;4$54)QE)Vgs^CsWo-kk3{=R4=z2>_TF$F*h9sL-j<tC$%; >zKX}vp89z?EqC$KBt!Qw#GmQ5*#+`&tg+MSY93DluH?AZzYp)nE24jB{7?7{p*gO?D >zP4I=X2$I|Z<+4XmYqTL(tbpez$gk`rD2yG73<b1E4o1F9&6Waq<aQS-QU?ST^;Va> >zNpc$weSXQZ6Gag%5kOy9HfA1@<L3=1{%Av?+DA0kfLx_D64^WO@OL)~Xh(wrItO>g >zVA*&|VjFHeVhIV!`DzQM7F-a@NRTNvNlYYp4z%6NAQuJno^MeOJ!7dzy8e(=;etr6 >z4q2h83Vb36o=G4!6u79$u)6u4LoN!;_)kItHmh9g5CP1HxVh+sSiS*Mlqx_uVfwL~ >z+}p|}Y*;r1<Pw47K#&Mv`REnN(@)$aD~e9eJBh8y`F(O18y#3(dp#1+fBqWgs!|JT >zvO;_kGSw$1i}Hw!32-v8Y!zsWb!0(jb;g-=t_-~%K)Tc<<svyzkO?Lq?31ZrV>{g* >z9DE4_W&SW~qUN5hWN@-RUJ#q3Ngxr&iJp;+4aEd;HM{A>I)B?7>yL4`Nc6h^we^ve >z3YC6fwXTqAQWr8=Cd?emR={YnNptkhuSFVP<t3|+TDNcUUVj|Y1(EawJ%>{Q?6Lt^ >zqF4A?)Arx1JpP&Pyh<4sUhXnam)AJ@xmkE-VuVGbg_|=vm|INb-=FD!zVlDxJ_uiv >SXLQ>D0000<MNUMnLSTa5n>yhD > >literal 0 >HcmV?d00001 > >diff --git a/koha-tmpl/opac-tmpl/prog/images/prev-disabled.png b/koha-tmpl/opac-tmpl/prog/images/prev-disabled.png >new file mode 100644 >index 0000000000000000000000000000000000000000..225c9a9ab8b4827ea16bde80eeb48b562e9564ad >GIT binary patch >literal 862 >zcmV-k1EKthP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004XF*Lt006JZ >zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!@JU2LRCwBA >z{Qv(y12UL0Wr`F~Oq!9AQ54AKhsu8h@?QhlPjho~pCPLU2p~q70YHsBK(>a2goHT| >zYw_^#7_hOiX@KN^{P=O>^XJbOUc7j5?aiAvCxOau01f&A(gzSgU<06<4Rv*OUBt!3 >zBSb|-)wsF288|pNz=nVS{+$760K=0fPj0<>^=if4yLa~h)t?6$0uVqfAO#?sL7IU! >z7bz(z@c?aR`2G7g!`H80!3MCfurL4(X5i!FQ~Ue(ZxIkP+`oVSJ5cHjKmaj|h=@o5 >zC0&3TlYv;0ot>TG<HwH--@bhVYX&L)^XCs(Oi)meK}bl5?d8jtl0Sd`e0t=_k*5Fw >z!~_a3ke@-$25J8E=@Z!YIdkTKTn5HK#SHW3&u0MopMjH;lR-g2K@I3VEs$P-0Ad1# >zHZL!)0m#oFg}?v<g$V;t9Iko7gb8py$Ymgx0NDmW2Z{m&5ECe>SXo&$K(>PdYudDF >zV5k54_mAP%uU}xzFqeS512O<;AvoNChVlah5XcK)#ULA)n3x#2xVXRyL41&NK`sLY >zB1jE1z`+KCya{3h1Q5szAA!!i0Sa-TOBj-qlNo?%0BiurJDHi8U_QujkOolHzI*o$ >z<h2{11O^a5ATPZB@ZrM+P$+|J1lg37lmxdG6a$HgiEuv1MZoj`a>WHu>I4WNW=~H~ >zkdsA#rmF}D2nYkC37lvQ3=F^;VE)(B(_@g9mS%YR^eMyP!-sDH^=tu(p8^OV=55=y >zeLi&P(0`y4f4_eH+87kiz$k?WB*-hEKm!`i@a)+$hV9$8e*p&eY@qsmz?66sAb?n) >zdE&<N=g&Dov9Nph?g({tbv01R<LBoGdjV)L!{f(~87^MD2(ozv&^w@{3<?7VfB=GL >zrpc2h^8jtr07{wzxmrNmLGi2sG62ZF0aSMZXzMi~J_%HJBPS;ZoS6Uuh!IzI1|<?u >oJVT=noSlKpr$CJ;*%=_f02&gb@5#$_MF0Q*07*qoM6N<$f_qtQg8%>k > >literal 0 >HcmV?d00001 > >diff --git a/koha-tmpl/opac-tmpl/prog/images/prev.png b/koha-tmpl/opac-tmpl/prog/images/prev.png >new file mode 100644 >index 0000000000000000000000000000000000000000..15d1584bdbb2c26a9fc4c8269aa54615a58a4657 >GIT binary patch >literal 745 >zcmV<F0v7#=P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004XF*Lt006JZ >zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!dr3q=R5;6} >zlTB|DQ51&z1N;U24p_Q$L!$8`YEc&^ZcNyixM*4vBdIZs#aaksiDKHcHc&~>1hlor >z)=Ec^h7>5J3?Bj(D6|X+0|UcQj&m*_Qg!D|-c07sd7pF6opXl(U}#WhW<VxMAxSAo >z)s?clC;Kyg(0EFceC$nGZTq@UxqVT3XLpYc1VikmH%!0YNKhlzq8ei`_5`47K5cPk >zHG#c2lPi>g<C`EJw}~n>0W$d_xV%ATb~UcS*dC+@kfS*m{?64KBH-eM78JQAu#&2c >z7TM!?0X98;&a@msh@1ehFDx4~_smCS0rm@Z$dv@5Y^ec>Jl}_`uDh5!i#cpZh5&_) >z{y|~cgJzZ1d%`?CxkdJIg%by0u(~PqB0%Zdj?maMmYO=M!=;B#0>~5_5YO>&?w*4H >z@LRbi!eNPrxg`gUUIeK8JG(3%R{o~|7so$K+8_qZe0Iz($pKd%d&oOhA&AGYXkKE` >zO8~w=kN^smCS05H!-WT*2mpbXAJK6B{s*`+;U?8|s%XO8{Hs1d`DH6am$(L0coEX9 >z)c+Ho)WS9-4?6~g4NrO@c2FaKCYmmR!DQ~YpfIn+s8pr^?KThtmU&}3Kr*7R^y^Rk >z5Xsb_*=oc3w-9KI@B4=+yK6a8uQ@#oTkf1PnlL+NjAm=Zh)+xqld|idFEF=^(avw| >z4U*w)Kx6;t<Z{I-2`p7bQVoJ|m@soRT?C!U!i^f1e-F~&C~M6g&4Sg=xcxCm<;vtt >zu;);cg%xK2w1!z`ME~yZQ69WZw_hgJ<1bdIshN4&@XW|g>nV0ZXQD@SHtHr7{`Y12 >bpX>Y!%!CO%>C8GV00000NkvXXu0mjfJYGkQ > >literal 0 >HcmV?d00001 > >diff --git a/opac/opac-detail.pl b/opac/opac-detail.pl >index d9ecdfa..1beabb1 100755 >--- a/opac/opac-detail.pl >+++ b/opac/opac-detail.pl >@@ -950,6 +950,19 @@ if (my $search_for_title = C4::Context->preference('OPACSearchForTitleIn')){ > $template->param('OPACSearchForTitleIn' => $search_for_title); > } > >+#IDREF >+if ( C4::Context->preference("IDREF") ) { >+ # If the record comes from the SUDOC >+ if ( $record->field('009') ) { >+ my $unimarc3 = $record->field("009")->data; >+ if ( $unimarc3 =~ /^\d+$/ ) { >+ $template->param( >+ IDREF => 1, >+ ); >+ } >+ } >+} >+ > # We try to select the best default tab to show, according to what > # the user wants, and what's available for display > my $opac_serial_default = C4::Context->preference('opacSerialDefaultTab'); >diff --git a/opac/opac-idref.pl b/opac/opac-idref.pl >new file mode 100755 >index 0000000..8980a41 >--- /dev/null >+++ b/opac/opac-idref.pl >@@ -0,0 +1,91 @@ >+#!/usr/bin/perl >+ >+use Modern::Perl; >+ >+use CGI; >+use LWP::UserAgent; >+use HTTP::Request::Common; >+use JSON; >+use Encode; >+ >+use C4::Auth; >+use C4::Context; >+use C4::Search; >+use C4::Output; >+ >+my $cgi = new CGI; >+my ( $template, $borrowernumber, $cookie ) = get_template_and_user( >+ { >+ template_name => "opac-idref.tt", >+ query => $cgi, >+ type => "opac", >+ authnotrequired => ( C4::Context->preference("OpacPublic") ? 1 : 0 ), >+ flagsrequired => { borrow => 1 }, >+ } >+); >+ >+my $ua = LWP::UserAgent->new; >+ >+my $base = 'http://www.idref.fr/services/biblio/'; >+my $unimarc3 = $cgi->param('unimarc3'); >+ >+my $request = HTTP::Request->new( >+ 'GET', >+ $base . $unimarc3 . ".json", >+); >+$request->protocol('HTTP/1.1'); >+my $response = $ua->request($request); >+if ( not $response->is_success) { >+ $template->param(error => $base.$unimarc3.'.json'); >+ output_html_with_http_headers $cgi, $cookie, $template->output; >+ exit; >+} >+ >+my $content = Encode::decode("utf8", $response->content); >+my $json = from_json( $content ); >+my $r; >+my $role_name; >+my @unimarc3; >+my @results = ref $json->{sudoc}{result} eq "ARRAY" >+ ? @{ $json->{sudoc}{result} } >+ : ($json->{sudoc}{result}); >+ >+for my $role_node ( @results ) { >+ while ( my ( $k, $v ) = each %$role_node ) { >+ next unless $k eq "role"; >+ my $role_name; >+ my $count = 0; >+ my $role_data = {}; >+ my @nodes = ref $v eq "ARRAY" >+ ? @$v >+ : ($v); >+ for my $node ( @nodes ) { >+ while ( ( $k, $v ) = each %$node ) { >+ given ( $k ) { >+ when ( "roleName" ) { >+ $role_name = $v; >+ $role_data->{role_name} = $role_name; >+ } >+ when ( "count" ) { >+ $role_data->{count} = $v; >+ } >+ when ( "doc" ) { >+ push @{ $role_data->{docs} }, $v; >+ } >+ default { >+ # unimarcCode and marc21Code >+ } >+ } >+ } >+ } >+ push @$r, $role_data; >+ } >+} >+ >+$template->param( >+ content => $r, >+ unimarc3 => $unimarc3, >+); >+ >+output_html_with_http_headers $cgi, $cookie, $template->output; >+ >-- >1.7.10.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 8992
:
13134
|
13142
|
21119
|
21182
|
21641
|
25358
|
25359
|
25365
|
25399
|
26998
|
26999
|
27000
|
27460
|
27462
|
27463
|
27464
|
29012
|
29165
|
29166
|
29167
|
29168
|
29169
|
30920
|
32123
|
35012
|
35013
|
35014
|
35015
|
35016
|
35017
|
35020
|
35022
|
35023
|
35024
|
35025
|
35026
|
35027
|
38639
|
39564
|
39565