About Features Downloads Getting Started Documentation Events Support GitHub

Love VuFind®? Consider becoming a financial supporter. Your support helps build a better VuFind®!

Site Tools


Warning: This page has not been updated in over over a year and may be outdated or deprecated.
development:plugins:link_resolver_drivers

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

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.

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

:!: 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).

development/plugins/link_resolver_drivers.txt · Last modified: 2023/11/27 18:48 by demiankatz