diff --git a/module/VuFind/src/VuFind/Resolver/Driver/AbstractBase.php b/module/VuFind/src/VuFind/Resolver/Driver/AbstractBase.php index cdff08a703a7f8818b751ce39561c8b8383c2209..9119a8fd6d26631ec3ea4c53ce2deddbefc05103 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 6d4290d152500743375bef7ba781ae51ddae75a5..f240f5cbe41ef848dcba44e55a6f06f45e5a5fe4 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 8d89d6d8f3f86fb8de131e2649a9f430a59b22dd..c1995c9dd8d091a65d2c9bf9ddf41e654cc83561 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; }