Koha-clms/opac
Julian Maurice ffb432df78 Bug 8995: Show OpenURL links in OPAC search results
This patch use GetCOinS sub to provide an OpenURL link in OPAC search
results. It uses 4 new system preferences:
  - OpenURLinOPACResults: enable or disable this feature
  - OpenURLResolverURL: url of the openURL resolver
  - OpenURLText: text of the link
  - OpenURLImageLocation: image of the link

Link is displayed as an image if OpenURLImageLocation is defined, and as
text otherwise.
It works both with and without XSLT enabled.

Changes made to GetCOinSBiblio:

For 'journal':
- Title should be in rft.jtitle instead of rft.title
- rft.date, rft.aulast, rft.aufirst, rft.au, rft.pub and rft.pages have
  no meaning for a subscription, so they are simply removed from URL

This patch refactors GetCOinSBiblio, so the construction of URL is done
only at the end. This way we do not have ugly
  $var .= "&$value"
in the function body.

Also use URI::Escape instead of custom regexps.

This development consider the value of syspref OPACURLOpenInNewWindow
when building the link.

Test plan:
1/ Enable syspref OPACShowOpenURL and put your OpenURL resolver URL in
OpenURLResolverURL syspref (if you don't have one, just fill it with
some fake URL, you'll have to check if OpenURL links are correct)
2/ If you want, set the other sysprefs OpenURLImageLocation and
OpenURLText
3/ Fill syspref OPACOpenURLItemTypes with some (not all) of your
item types.
4/ Empty sysprefs OPACXSLTDetailsDisplay and OPACXSLTResultsDisplay
5/ Go to OPAC and launch a search.
6/ Check you have in the results (near the title) the OpenURL link (only
for itemtypes that are in OPACOpenURLItemTypes).
Toggle OPACURLOpenInNewWindow syspref and check that the behaviour of
the link is correct.
7/ Go to the detail page of one of those and check you have the OpenURL
link too. (Above tags)
Toggle OPACURLOpenInNewWindow syspref and check that the behaviour of
the link is correct.
8/ Set sysprefs OPACXSLTDetailsDisplay and OPACXSLTResultsDisplay to
"default" and repeat steps 5 to 7

Signed-off-by: Paola Rossi <paola.rossi@cineca.it>

Signed-off-by: Magnus Enger <magnus@libriotech.no>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
2019-04-29 15:34:09 +00:00
..
clubs
…
errors Bug 19991: use Modern::Perl in OPAC perl scripts 2018-08-30 13:40:32 +00:00
external/overdrive
…
rss
…
sci Bug 22739: Test SelfCheckInTimeout <> 0, not just defined 2019-04-25 10:05:00 +00:00
sco Bug 22538: Add a noticeable alert about waiting holds 2019-04-17 12:25:25 +00:00
svc Bug 22030: Use preference to determine username sent to overdrive 2019-01-08 13:59:46 +00:00
ilsdi.pl Bug 21719: Fix typos 2018-11-08 02:18:46 +00:00
maintenance.pl
…
oai.pl
…
opac-ISBDdetail.pl Bug 22696: Prefetch items too 2019-04-24 10:56:34 +00:00
opac-MARCdetail.pl Bug 22735: Resolve internal server error on missing item type 2019-04-24 10:36:30 +00:00
opac-account-pay-paypal-return.pl Bug 22600: Add 'interface' to accountlines 2019-04-10 19:43:11 +00:00
opac-account-pay-return.pl
…
opac-account-pay.pl
…
opac-account.pl Bug 22588: (follow-up) Simplify getting accounts even more 2019-04-16 13:17:33 +00:00
opac-addbybiblionumber.pl
…
opac-alert-subscribe.pl Bug 19991: use Modern::Perl in OPAC perl scripts 2018-08-30 13:40:32 +00:00
opac-article-request-cancel.pl Bug 22068: (QA follow-up) Return meaningful error codes 2019-04-10 19:58:31 +00:00
opac-authorities-home.pl Bug 19991: use Modern::Perl in OPAC perl scripts 2018-08-30 13:40:32 +00:00
opac-authoritiesdetail.pl Bug 21871: (QA follow-up) C4::Biblio qw(GetMarcUrls) 2019-01-30 12:12:21 +00:00
opac-basket.pl Bug 19241: Waiting items show as available in the cart 2019-04-25 10:21:19 +00:00
opac-blocked.pl
…
opac-browser.pl Bug 19991: use Modern::Perl in OPAC perl scripts 2018-08-30 13:40:32 +00:00
opac-changelanguage.pl Bug 21299: (QA follow-up) Rename module and subroutine 2018-11-07 21:52:17 +00:00
opac-course-details.pl
…
opac-course-reserves.pl
…
opac-detail.pl Bug 22360: (bug 21205 follow-up) Restore OPACAcquisitionDetails behavior 2019-03-04 18:20:54 +00:00
opac-discharge.pl Bug 20953: Prevent several discharge requests on OPAC 2018-07-13 10:34:28 +00:00
opac-downloadcart.pl Bug 14385: Squash of a lot of patches rebased 2018-11-02 10:33:12 +00:00
opac-downloadshelf.pl Bug 14385: Squash of a lot of patches rebased 2018-11-02 10:33:12 +00:00
opac-export.pl Bug 22075: Fix encoding problem with RIS export in OPAC 2019-04-11 11:47:17 +00:00
opac-ics.pl Bug 19991: use Modern::Perl in OPAC perl scripts 2018-08-30 13:40:32 +00:00
opac-idref.pl
…
opac-illrequests.pl Bug 20639: (follow-up) Fix population of backends 2019-03-07 20:51:11 +00:00
opac-image.pl Bug 19991: use Modern::Perl in OPAC perl scripts 2018-08-30 13:40:32 +00:00
opac-imageviewer.pl Bug 19991: use Modern::Perl in OPAC perl scripts 2018-08-30 13:40:32 +00:00
opac-issue-note.pl Bug 17698: Make patron notes show up on staff dashboard 2018-07-23 15:23:40 +00:00
opac-main.pl Bug 22318: Example implementation: OpacNavRight system preference 2019-04-18 10:47:03 +00:00
opac-memberentry.pl Bug 10796: Use $category->effective_change_password in the OPAC 2019-04-12 02:32:07 +00:00
opac-messaging.pl Bug 19991: use Modern::Perl in OPAC perl scripts 2018-08-30 13:40:32 +00:00
opac-modrequest-suspend.pl Bug 19991: use Modern::Perl in OPAC perl scripts 2018-08-30 13:40:32 +00:00
opac-modrequest.pl Bug 19991: use Modern::Perl in OPAC perl scripts 2018-08-30 13:40:32 +00:00
opac-mymessages.pl Bug 19991: use Modern::Perl in OPAC perl scripts 2018-08-30 13:40:32 +00:00
opac-news-rss.pl
…
opac-overdrive-search.pl Bug 19991: use Modern::Perl in OPAC perl scripts 2018-08-30 13:40:32 +00:00
opac-passwd.pl Bug 10796: Use $category->effective_change_password in the OPAC 2019-04-12 02:32:07 +00:00
opac-password-recovery.pl Bug 21890: (QA follow-up) Use List::Util::any 2019-04-12 02:32:04 +00:00
opac-patron-consent.pl Bug 20819: Add your consents tab to opac-user 2018-09-20 13:45:26 +00:00
opac-patron-image.pl Bug 19991: use Modern::Perl in OPAC perl scripts 2018-08-30 13:40:32 +00:00
opac-privacy.pl Bug 19991: use Modern::Perl in OPAC perl scripts 2018-08-30 13:40:32 +00:00
opac-ratings-ajax.pl Bug 19991: use Modern::Perl in OPAC perl scripts 2018-08-30 13:40:32 +00:00
opac-ratings.pl Bug 19991: use Modern::Perl in OPAC perl scripts 2018-08-30 13:40:32 +00:00
opac-readingrecord.pl Bug 11969: Show patrons star rating on their reading history 2019-04-17 12:25:25 +00:00
opac-recordedbooks-search.pl Bug 17602: Fix few minor QA issues 2018-10-01 13:56:56 +00:00
opac-registration-verify.pl Bug 10796: Use $category->effective_change_password in the OPAC 2019-04-12 02:32:07 +00:00
opac-renew.pl Bug 21206: Replace C4::Items::GetItem 2019-02-26 13:24:07 +00:00
opac-request-article.pl
…
opac-reserve.pl Bug 21263: Pickup library not set correctly when using Default holds policy 2019-04-11 13:34:10 +00:00
opac-restrictedpage.pl
…
opac-retrieve-file.pl
…
opac-review.pl Bug 21986: Do not escape quotation marks when cataloguing 2018-12-14 13:33:28 +00:00
opac-routing-lists.pl Bug 21137: Replace BORROWER_INFO with logged_in_user 2018-08-14 12:43:12 +00:00
opac-search-history.pl
…
opac-search.pl Bug 8995: Show OpenURL links in OPAC search results 2019-04-29 15:34:09 +00:00
opac-sendbasket.pl Bug 21874: Fix encoding of cart and list email subjects 2018-11-26 12:38:56 +00:00
opac-sendshelf.pl Bug 21874: Fix encoding of cart and list email subjects 2018-11-26 12:38:56 +00:00
opac-serial-issues.pl Bug 19991: use Modern::Perl in OPAC perl scripts 2018-08-30 13:40:32 +00:00
opac-shareshelf.pl Bug 20687: (follow-up) Look for invitekey in show_accept and fix error codes 2018-05-07 11:55:13 -03:00
opac-shelves.pl Bug 21206: Replace C4::Items::GetItem 2019-02-26 13:24:07 +00:00
opac-showmarc.pl Bug 20083: (follow-up) use same logic in opac-showmarc 2018-04-04 15:45:34 -03:00
opac-showreviews.pl Bug 19991: use Modern::Perl in OPAC perl scripts 2018-08-30 13:40:32 +00:00
opac-suggestions.pl Bug 19991: use Modern::Perl in OPAC perl scripts 2018-08-30 13:40:32 +00:00
opac-tags.pl Bug 14385: Squash of a lot of patches rebased 2018-11-02 10:33:12 +00:00
opac-tags_subject.pl Bug 19991: use Modern::Perl in OPAC perl scripts 2018-08-30 13:40:32 +00:00
opac-topissues.pl Bug 19991: use Modern::Perl in OPAC perl scripts 2018-08-30 13:40:32 +00:00
opac-user.pl Bug 22521: Update UI to use accountlines.status 2019-04-17 16:49:36 +00:00
tracklinks.pl Bug 21018: Allow uris defined in the item 2018-08-08 13:06:19 +00:00
unapi Bug 19991: use Modern::Perl in OPAC perl scripts 2018-08-30 13:40:32 +00:00