From 99a88a3ac8779ef4e8b24c4d1fd82eaa16afcb97 Mon Sep 17 00:00:00 2001 From: Ere Maijala <ere.maijala@helsinki.fi> Date: Mon, 26 Nov 2018 11:19:57 +0200 Subject: [PATCH] Make it possible to include parameters in the OpenURL resolver base URL. --- module/VuFind/src/VuFind/Resolver/Driver/AbstractBase.php | 5 ++++- module/VuFind/src/VuFind/Resolver/Driver/Redi.php | 2 +- module/VuFind/src/VuFind/Resolver/Driver/Sfx.php | 5 +++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/module/VuFind/src/VuFind/Resolver/Driver/AbstractBase.php b/module/VuFind/src/VuFind/Resolver/Driver/AbstractBase.php index cdff08a703a..9119a8fd6d2 100644 --- a/module/VuFind/src/VuFind/Resolver/Driver/AbstractBase.php +++ b/module/VuFind/src/VuFind/Resolver/Driver/AbstractBase.php @@ -68,7 +68,10 @@ abstract class AbstractBase implements DriverInterface */ public function getResolverUrl($openURL) { - return $this->baseUrl . '?' . $openURL; + $url = $this->baseUrl; + $url .= strpos($url, '?') === false ? '?' : '&'; + $url .= $openURL; + return $url; } /** diff --git a/module/VuFind/src/VuFind/Resolver/Driver/Redi.php b/module/VuFind/src/VuFind/Resolver/Driver/Redi.php index 6d4290d1525..f240f5cbe41 100644 --- a/module/VuFind/src/VuFind/Resolver/Driver/Redi.php +++ b/module/VuFind/src/VuFind/Resolver/Driver/Redi.php @@ -81,7 +81,7 @@ class Redi extends AbstractBase */ public function fetchLinks($openURL) { - $url = $this->baseUrl . '?' . $openURL; + $url = $this->getResolverUrl($openURL); $feed = $this->httpClient->setUri($url)->send()->getBody(); return $feed; } diff --git a/module/VuFind/src/VuFind/Resolver/Driver/Sfx.php b/module/VuFind/src/VuFind/Resolver/Driver/Sfx.php index 8d89d6d8f3f..c1995c9dd8d 100644 --- a/module/VuFind/src/VuFind/Resolver/Driver/Sfx.php +++ b/module/VuFind/src/VuFind/Resolver/Driver/Sfx.php @@ -72,8 +72,9 @@ class Sfx extends AbstractBase public function fetchLinks($openURL) { // Make the call to SFX and load results - $url = $this->baseUrl . - '?sfx.response_type=multi_obj_detailed_xml&svc.fulltext=yes&' . $openURL; + $url = $this->getResolverUrl( + 'sfx.response_type=multi_obj_detailed_xml&svc.fulltext=yes&' . $openURL + ); $feed = $this->httpClient->setUri($url)->send()->getBody(); return $feed; } -- GitLab