Table of Contents
Link Resolver Drivers
This page contains details on writing a custom driver for an OpenURL Link Resolver not already supported by VuFind®.
Note that Link Resolver Drivers are only used when the “embed” setting is turned on in the [OpenURL] section of config.ini. This setting allows link resolver results to be directly embedded in the VuFind® search page rather than opening in a separate window.
Key Plugin Details
Default Namespace: \VuFind\Resolver\Driver
Interface: \VuFind\Resolver\Driver\DriverInterface
Service Locator Configuration Section in module.config.php: ['vufind']['plugin_managers']['resolver_driver']
Service Manager Name for Service Locator: VuFind\ResolverDriverPluginManager (VuFind® 2.x-4.x), VuFind\Resolver\Driver\PluginManager (VuFind® 5.0+)
See the General Plugin Information page for more details on VuFind® plugins.
Basic Structure
- The PHP driver class must be registered in the service locator with the value used as the the resolver setting in the [OpenURL] section of config.ini. (i.e. “sfx”).
- The driver class must implement the VuFind\Resolver\Driver\DriverInterface. For convenience, starting in release 4.0, most drivers will achieve this by extending VuFind\Resolver\Driver\AbstractBase.
Key Methods
fetchLinks
This method takes an OpenURL as a parameter and retrieves details from the link resolver.
getResolverUrl
Introduced in VuFind® 4.0
This method takes an OpenURL as a parameter and returns a URL for accessing that item in the link resolver's native interface.
parseLinks
This method takes the output of fetchLinks and parses it into an array of associative arrays with the following keys:
- href - the link to access the resource
- title - a text description of the resource
- coverage - coverage range applicable to the resource
- service_type - used to categorize links (getHolding = local print holding, getWebService = special service related to item, getDOI = DOI link, getFullTxt = electronic holding)
- access - used to style links according to their access-status (if supported by the link resolver driver - available status: open, limited, denied, unknown), style classes are named access-{status} in template ajax/resolverLinks.phtml; this feature was added in VuFind® 2.5
supportsMoreOptionsLink
Introduced in VuFind® 4.0
This method returns true when the direct link provided by getResolverUrl offers a human-friendly interface; it should return false if the link resolver offers a data-only interface (for example, in the case of JOP).