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!
ILS Drivers are found in the web/Drivers folder of the VuFind installation. The PHP file containing the driver must be named for the value used as the driver setting in the [Catalog] section of web/conf/config.ini. The name of the class defined in the PHP file should match the filename, and the class must extend the DriverInterface base class (found in web/Drivers/Interface.php). You may wish to define a catalog-specific .ini file in the /web/conf/ directory for your ILS – you can look at other existing drivers to see how this can be loaded in the constructor.
ILS Drivers must contain the following methods. It should be assumed that any method may return a PEAR_Error object in case of an unexpected problem.
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.
This method queries the ILS for a list of courses to be used as input to the findReserves method (Optional)
This method queries the ILS for a list of departments to be used as input to the findReserves method (Optional)
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.
This method queries the ILS for holding information
This method queries the ILS for holding information on multiple records at once
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.
This method queries the ILS for a list of instructors to be used as input to the findReserves method (Optional)
This method queries the ILS for a patron's current fines
This method queries the ILS for a patron's current holds
Note: The values listed above as optional are not provided by every driver implementation and are not used by the standard VuFind code base as of this writing. Any new code which references them should assume they may not be present.
This method queries the ILS for a patron's current profile information
This method queries the ILS for a patron's current checked out items
Note: The values listed above as optional are not provided by every driver implementation and are not used by the standard VuFind code base as of this writing. Any new code which references them should assume they may not be present.
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.
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.
This method calls getStatus for an array of records
Return a list of suppressed records (used to remove non-visible items from VuFind's index).
This method processes authentication against the ILS
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.