Table of Contents

ILS Driver

This page contains details on writing a custom driver for an integrated library system not already supported by VuFind. VuFind supports many platforms, so check to see if it already has support before you try to write your own!

Basic Structure

Key Methods

ILS Drivers must contain some or all of the following methods (optional methods are marked as such in their descriptions). It should be assumed that any method may return a PEAR_Error object in case of an unexpected problem.

cancelHolds

This method cancels a list of holds for a specific patron. (optional) Not supported prior to VuFind 1.2

checkRequestIsValid

Introduced in VuFind 1.3, this optional method can be used to check if a particular user is allowed to place a hold/recall request on a particular item. If you omit this method, the driver will still operate correctly; however, implementing it allows minor enhancements to the user experience.

findReserves

This method returns items that are on reserve for the specified course, instructor and/or department.

The “not currently used” values listed above only appear to be implemented in the Voyager driver and should probably be considered deprecated.

getCancelHoldDetails

This method returns a string to use as the input form value for cancelling each hold item. (optional, but required if you implement cancelHolds). Not supported prior to VuFind 1.2

getCancelHoldLink

This method returns a URL to use as a link to a native OPAC for cancelling each hold item. (optional – only implement this if your ILS is unable to support implementation of the cancelHolds method). Not supported prior to VuFind 1.2

getConfig

This method returns driver configuration settings related to a particular function. It is primarily used to get the configuration settings for placing holds. (optional, but necessary if you want to implement hold functionality) Not supported prior to VuFind 1.2

getCourses

This method queries the ILS for a list of courses to be used as input to the findReserves method (Optional)

getDefaultPickUpLocation

This method returns the default pick up location code or id for use when placing holds. (optional) Not supported prior to VuFind 1.2

getDepartments

This method queries the ILS for a list of departments to be used as input to the findReserves method (Optional)

getFunds

Get a list of funds that can be used to limit the “new item” search. Note that “fund” may be a misnomer – if funds are not an appropriate way to limit your new item results, you can return a different set of values from this function. For example, you might just make this a wrapper for getDepartments(). The important thing is that whatever you return from this function, the IDs can be used as a limiter to the getNewItems() function, and the names are appropriate for display on the new item search screen. If you do not want or support such limits, just return an empty array here and the limit control on the new item search screen will disappear.

IMPORTANT: The return value for this method changed in r2184. If you are using VuFind 1.0RC2 or earlier, this function returns a flat array of options (no ID-based keys), and empty return values may cause problems. It is recommended that you update to newer code before implementing the new item feature in your driver.

getHolding

This method queries the ILS for holding information.

getHoldings -- DEPRECATED

This method queries the ILS for holding information on multiple records at once

getHoldLink

This method returns a URL that links into the ILS to allow the patron to place a hold. Optional – should only be defined when the placeHold method cannot be implemented due to ILS limitations.

getInstructors

This method queries the ILS for a list of instructors to be used as input to the findReserves method (Optional)

getMyFines

This method queries the ILS for a patron's current fines

getMyHolds

This method queries the ILS for a patron's current holds

getMyProfile

This method queries the ILS for a patron's current profile information

getMyTransactions

This method queries the ILS for a patron's current checked out items

getNewItems

This method queries the ILS for new items

IMPORTANT: The fundID parameter changed behavior in r2184. In VuFind 1.0RC2 and earlier versions, it receives one of the VALUES returned by getFunds(); in more recent code, it receives one of the KEYS from getFunds(). See getFunds for additional notes.

getOfflineMode

This optional method (introduced in VuFind 1.4) gets the online status of the ILS – “ils-offline” for systems where the main ILS is offline, “ils-none” for systems which do not use an ILS, false for systems that are fully online. If not implemented, the value defaults to false – most drivers will not need to worry about this method, which is primarily used by the special NoILS driver.

getPickUpLocations

This method returns a list of locations where a user may collect a hold. (optional) Not supported prior to VuFind 1.2

getPurchaseHistory

This method returns information on recently received issues of a serial.

Currently, most drivers do not implement this method, instead always returning an empty array. It is only necessary to implement this in more detail if you want to populate the “Most Recent Received Issues” section of the record holdings tab.

getRenewDetails

This method returns a string to use as the input form value for renewing each hold item. (optional, but required if you implement the renewMyItems method) Not supported prior to VuFind 1.2

getRenewLink

This method returns a URL to use as a link to a native OPAC for renewing each item. (optional, and should not be implemented unless your ILS is unable to support implementation of the renewMyItems method). Not supported prior to VuFind 1.2

getStatus

This method returns a subset of the information from getHolding

Note: Some driver implementations add additional values beyond those listed above. However, these extra values are not used and should be ignored.

getStatuses

This method calls getStatus for an array of records

getSuppressedAuthorityRecords

Return a list of suppressed authority records (used to remove non-visible items from VuFind's index). Note: this method was introduced in VuFind 1.4.

getSuppressedRecords

Return a list of suppressed bibliographic records (used to remove non-visible items from VuFind's index).

hasHoldings

This optional method (introduced in VuFind 1.4) can be used to hide the holdings tab for records where holdings do not apply. Most drivers will not need to implement this – it is primarily for use by the special NoILS driver.

loginIsHidden

This optional method (introduced in VuFind 1.4) can be used to hide VuFind's login options. Most drivers will not need to implement this – it is primarily for use by the special NoILS driver.

patronLogin

This method processes authentication against the ILS

placeHold

This method places a hold on a specific record for a specific patron. (Optional – if this feature is not supported by the ILS, you can define the getHoldLink method instead). This method was not consistently implemented until VuFind 1.2 – earlier drivers may include a placeHold method, but none of those early versions are supported by standard core code.

renewMyItems

This method renews a list of items for a specific patron. (optional – you may wish to implement getRenewLink instead if your ILS does not support direct renewals) Not supported prior to VuFind 1.2

Further Reading