Warning: This page has not been updated in over over a year and may be outdated or deprecated.
development:plugins:ils_drivers
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
development:plugins:ils_drivers [2021/08/27 10:36] – [getConfig] emaijala | development:plugins:ils_drivers [2023/04/17 12:56] – demiankatz | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== ILS Drivers ====== | ====== ILS Drivers ====== | ||
- | // This page refers to VuFind | + | // This page refers to VuFind® |
- | This page contains details on writing a custom driver for an integrated library system not already supported by VuFind. | + | This page contains details on writing a custom driver for an integrated library system not already supported by VuFind®. |
Line 14: | Line 14: | ||
**Service Locator Configuration Section in module.config.php: | **Service Locator Configuration Section in module.config.php: | ||
- | **Service Manager Name for Service Locator:** VuFind\ILSDriverPluginManager (VuFind | + | **Service Manager Name for Service Locator:** VuFind\ILSDriverPluginManager (VuFind® |
- | See the [[development: | + | See the [[development: |
===== Basic Structure ===== | ===== Basic Structure ===== | ||
Line 22: | Line 22: | ||
* The PHP driver class must be registered in the service locator with the value used as the driver setting in the [Catalog] section of [[configuration: | * The PHP driver class must be registered in the service locator with the value used as the driver setting in the [Catalog] section of [[configuration: | ||
* The driver class must implement the VuFind\ILS\Driver\DriverInterface. | * The driver class must implement the VuFind\ILS\Driver\DriverInterface. | ||
- | * You may wish to define a catalog-specific .ini file in VuFind's configuration directory -- the name of this file should correspond with the base class name of the driver (i.e. for VuFind\ILS\Driver\Voyager, | + | * You may wish to define a catalog-specific .ini file in VuFind®'s configuration directory -- the name of this file should correspond with the base class name of the driver (i.e. for VuFind\ILS\Driver\Voyager, |
* All heavy-weight initialization logic (i.e. establishing database connections) and configuration validation should take place in the init() method, NOT the constructor. | * All heavy-weight initialization logic (i.e. establishing database connections) and configuration validation should take place in the init() method, NOT the constructor. | ||
Line 30: | Line 30: | ||
==== cancelHolds ==== | ==== cancelHolds ==== | ||
- | This method cancels a list of holds for a specific patron. (optional) | + | This method cancels a list of holds for a specific patron. (optional) |
* Input: cancelDetails An associative array with two keys: patron (array returned by the driver' | * Input: cancelDetails An associative array with two keys: patron (array returned by the driver' | ||
Line 37: | Line 37: | ||
* items – Associative array where key matches one of the item_id values returned by getMyHolds and the value is an associative array with these keys: | * items – Associative array where key matches one of the item_id values returned by getMyHolds and the value is an associative array with these keys: | ||
* success – Boolean true or false | * success – Boolean true or false | ||
- | * status – A status message from the language file (required -- VuFind-specific message, subject to translation) | + | * status – A status message from the language file (required -- VuFind®-specific message, subject to translation) |
* sysMessage - A system supplied failure message (optional -- useful for passing additional details from the ILS) | * sysMessage - A system supplied failure message (optional -- useful for passing additional details from the ILS) | ||
==== cancelILLRequests ==== | ==== cancelILLRequests ==== | ||
- | This method cancels a list of ILL requests for a specific patron. (optional) | + | This method cancels a list of ILL requests for a specific patron. (optional) |
* Input: cancelDetails An associative array with two keys: patron (array returned by the driver' | * Input: cancelDetails An associative array with two keys: patron (array returned by the driver' | ||
Line 48: | Line 48: | ||
* items – Associative array where key matches one of the item_id values returned by getMyILLRequests and the value is an associative array with these keys: | * items – Associative array where key matches one of the item_id values returned by getMyILLRequests and the value is an associative array with these keys: | ||
* success – Boolean true or false | * success – Boolean true or false | ||
- | * status – A status message from the language file (required -- VuFind-specific message, subject to translation) | + | * status – A status message from the language file (required -- VuFind®-specific message, subject to translation) |
* sysMessage - A system supplied failure message (optional -- useful for passing additional details from the ILS) | * sysMessage - A system supplied failure message (optional -- useful for passing additional details from the ILS) | ||
==== cancelStorageRetrievalRequests ==== | ==== cancelStorageRetrievalRequests ==== | ||
- | This method cancels a list of storage retrieval requests for a specific patron. (optional) | + | This method cancels a list of storage retrieval requests for a specific patron. (optional) |
* Input: cancelDetails An associative array with two keys: patron (array returned by the driver' | * Input: cancelDetails An associative array with two keys: patron (array returned by the driver' | ||
Line 59: | Line 59: | ||
* items – Associative array where key matches one of the item_id values returned by getMyStorageRetrievalRequests and the value is an associative array with these keys: | * items – Associative array where key matches one of the item_id values returned by getMyStorageRetrievalRequests and the value is an associative array with these keys: | ||
* success – Boolean true or false | * success – Boolean true or false | ||
- | * status – A status message from the language file (required -- VuFind-specific message, subject to translation) | + | * status – A status message from the language file (required -- VuFind®-specific message, subject to translation) |
* sysMessage - A system supplied failure message (optional -- useful for passing additional details from the ILS) | * sysMessage - A system supplied failure message (optional -- useful for passing additional details from the ILS) | ||
==== changePassword ==== | ==== changePassword ==== | ||
- | This method changes patron' | + | This method changes patron' |
* Input: details An associative array with three keys: | * Input: details An associative array with three keys: | ||
Line 71: | Line 71: | ||
* Output: Associative array containing: | * Output: Associative array containing: | ||
* success – Boolean true or false | * success – Boolean true or false | ||
- | * status – A status message from the language file (required -- VuFind-specific message, subject to translation) | + | * status – A status message from the language file (required -- VuFind®-specific message, subject to translation) |
==== checkILLRequestIsValid ==== | ==== checkILLRequestIsValid ==== | ||
- | // Not supported prior to VuFind | + | // Not supported prior to VuFind® |
This optional method can be used to check if a particular user is allowed to place an ILL 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. | This optional method can be used to check if a particular user is allowed to place an ILL 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. | ||
* Input: Bibliographic ID, Item Data (similar to the details parameter passed to the placeILLRequest() method, but without the ' | * Input: Bibliographic ID, Item Data (similar to the details parameter passed to the placeILLRequest() method, but without the ' | ||
- | * Output: True if item may be requested, false if not. Prior to VuFind | + | * Output: True if item may be requested, false if not. Prior to VuFind® |
==== checkRequestIsValid ==== | ==== checkRequestIsValid ==== | ||
- | Introduced in VuFind | + | Introduced in VuFind® |
* Input: Bibliographic ID, Item Data (similar to the holdDetails parameter passed to the placeHold() method, but without the ' | * Input: Bibliographic ID, Item Data (similar to the holdDetails parameter passed to the placeHold() method, but without the ' | ||
- | * Output: True if item may be requested, false if not. Starting with VuFind | + | * Output: True if item may be requested, false if not. Starting with VuFind® |
==== checkStorageRetrievalRequestIsValid ==== | ==== checkStorageRetrievalRequestIsValid ==== | ||
- | // Not supported prior to VuFind | + | // Not supported prior to VuFind® |
This optional method can be used to check if a particular user is allowed to place a storage retrieval 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. | This optional method can be used to check if a particular user is allowed to place a storage retrieval 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. | ||
* Input: Bibliographic ID, Item Data (similar to the details parameter passed to the placeStorageRetrievalRequest() method, but without the ' | * Input: Bibliographic ID, Item Data (similar to the details parameter passed to the placeStorageRetrievalRequest() method, but without the ' | ||
- | * Output: True if item may be requested, false if not. Prior to VuFind | + | * Output: True if item may be requested, false if not. Prior to VuFind® |
==== findReserves ==== | ==== findReserves ==== | ||
Line 113: | Line 113: | ||
==== getAccountBlocks ==== | ==== getAccountBlocks ==== | ||
- | This optional method returns an array of strings describing blocks on the user's account (for example, lost items, financial violations, etc.). If no blocks are in place, it returns false. // Not supported prior to VuFind | + | This optional method returns an array of strings describing blocks on the user's account (for example, lost items, financial violations, etc.). If no blocks are in place, it returns false. // Not supported prior to VuFind® |
* Input: patron (array returned by the driver' | * Input: patron (array returned by the driver' | ||
Line 119: | Line 119: | ||
==== getCancelHoldDetails ==== | ==== getCancelHoldDetails ==== | ||
- | This method returns a string to use as the input form value for cancelling each hold item. If determining this identifier does not require complex calculations, | + | This method returns a string to use as the input form value for cancelling each hold item. If determining this identifier does not require complex calculations, |
* Input: | * Input: | ||
* holdDetails - One of the individual item arrays returned by the getMyHolds method | * holdDetails - One of the individual item arrays returned by the getMyHolds method | ||
- | * patron (array returned by the driver' | + | * patron (array returned by the driver' |
- | * Output: A string to use as the input form value for cancelling each hold item; you can pass any data that is needed by your ILS to identify the hold -- the output of this method will be used as part of the input to the cancelHolds method. Starting with VuFind | + | * Output: A string to use as the input form value for cancelling each hold item; you can pass any data that is needed by your ILS to identify the hold -- the output of this method will be used as part of the input to the cancelHolds method. Starting with VuFind® |
==== getCancelHoldLink ==== | ==== 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 | + | 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® |
* Input: | * Input: | ||
* holdDetails - One of the individual item arrays returned by getMyHolds method | * holdDetails - One of the individual item arrays returned by getMyHolds method | ||
- | * patron (array returned by the driver' | + | * patron (array returned by the driver' |
* Output: A URL to a native OPAC for cancelling each hold item | * Output: A URL to a native OPAC for cancelling each hold item | ||
==== getCancelILLRequestDetails ==== | ==== getCancelILLRequestDetails ==== | ||
- | This method returns a string to use as the input form value for cancelling each hold item. (optional, but required if you implement cancelILLRequests). // Not supported prior to VuFind | + | This method returns a string to use as the input form value for cancelling each hold item. (optional, but required if you implement cancelILLRequests). // Not supported prior to VuFind® |
* Input: | * Input: | ||
Line 144: | Line 144: | ||
==== getCancelStorageRetrievalRequestDetails ==== | ==== getCancelStorageRetrievalRequestDetails ==== | ||
- | This method returns a string to use as the input form value for cancelling each hold item. (optional, but required if you implement cancelStorageRetrievalRequests). // Not supported prior to VuFind | + | This method returns a string to use as the input form value for cancelling each hold item. (optional, but required if you implement cancelStorageRetrievalRequests). // Not supported prior to VuFind® |
* Input: | * Input: | ||
Line 152: | Line 152: | ||
==== getConfig ==== | ==== getConfig ==== | ||
- | This method returns driver configuration settings related to a particular function. | + | This method returns driver configuration settings related to a particular function. |
* Input: | * Input: | ||
Line 163: | Line 163: | ||
* Array keys used for input of " | * Array keys used for input of " | ||
- | * itemLimit (optional) - The page size used when retrieving holdings data in a paginated format (see [[# | + | * itemLimit (optional) - The page size used when retrieving holdings data in a paginated format (see [[# |
* Array keys used for input of " | * Array keys used for input of " | ||
- | * HMACKeys - a colon-separated list of fields to verify with a hash key when submitting a hold form (at a minimum, " | + | * HMACKeys - a colon-separated list of fields to verify with a hash key when submitting a hold form (at a minimum, " |
- | * extraHoldFields (optional) - a colon-separated list of form fields to include in the place hold form; may include " | + | * extraHoldFields (optional) - a colon-separated list of form fields to include in the place hold form; may include " |
* defaultRequiredDate - A colon-separated list used to set the default "not required after" date for holds in the format days: | * defaultRequiredDate - A colon-separated list used to set the default "not required after" date for holds in the format days: | ||
* This only applies if extraHoldFields includes " | * This only applies if extraHoldFields includes " | ||
- | * Starting with VuFind | + | * Starting with VuFind® |
* consortium (optional) - Boolean true or false (default): Does this driver provide consortial capabilities (e.g., XCNCIP2 driver)? If set to true, then the driver method getConsortialHoldings() will be called in order to to provide multiple Holding statuses in a consortial environment; | * consortium (optional) - Boolean true or false (default): Does this driver provide consortial capabilities (e.g., XCNCIP2 driver)? If set to true, then the driver method getConsortialHoldings() will be called in order to to provide multiple Holding statuses in a consortial environment; | ||
- | * itemLimit (optional, deprecated) - This setting was used here in VuFind | + | * itemLimit (optional, deprecated) - This setting was used here in VuFind® |
* helpText - A generic help text displayed on the hold request form. Displayed as is; HTML tags can be used, but everything needs to be properly escaped. | * helpText - A generic help text displayed on the hold request form. Displayed as is; HTML tags can be used, but everything needs to be properly escaped. | ||
- | * helpText[*] - (From VuFind | + | * helpText[*] - (From VuFind® |
* helpText[lng] - A language-specific help text displayed on the hold request form. Displayed as is; HTML tags can be used, and everything needs to be properly escaped. | * helpText[lng] - A language-specific help text displayed on the hold request form. Displayed as is; HTML tags can be used, and everything needs to be properly escaped. | ||
- | * updateHelpText[*] - (From VuFind | + | * updateHelpText[*] - (From VuFind® |
- | * updateHelpText[lng] - (From VuFind | + | * updateHelpText[lng] - (From VuFind® |
- | * updateFields (optional) - (From VuFind | + | * updateFields (optional) - (From VuFind® |
* Array keys used for input of " | * Array keys used for input of " | ||
Line 184: | Line 184: | ||
* Array keys used for input of " | * Array keys used for input of " | ||
- | * HMACKeys - a colon-separated list of fields to verify with a hash key when submitting a hold form (at a minimum, " | + | * HMACKeys - a colon-separated list of fields to verify with a hash key when submitting a hold form (at a minimum, " |
* extraFields (optional) - a colon-separated list of form fields to include in the request form; may include " | * extraFields (optional) - a colon-separated list of form fields to include in the request form; may include " | ||
* defaultRequiredDate - A colon-separated list used to set the default "not required after" date for requests in the format days: | * defaultRequiredDate - A colon-separated list used to set the default "not required after" date for requests in the format days: | ||
* This only applies if extraFields includes " | * This only applies if extraFields includes " | ||
* helpText - A generic help text displayed on the request form. Displayed as is; HTML tags can be used, and everything needs to be properly escaped. | * helpText - A generic help text displayed on the request form. Displayed as is; HTML tags can be used, and everything needs to be properly escaped. | ||
- | * helpText[*] - (From VuFind | + | * helpText[*] - (From VuFind® |
* helpText[lng] - A language-specific help text displayed on the request form. Displayed as is; HTML tags can be used, and everything needs to be properly escaped. | * helpText[lng] - A language-specific help text displayed on the request form. Displayed as is; HTML tags can be used, and everything needs to be properly escaped. | ||
* Array keys used for input of " | * Array keys used for input of " | ||
- | * HMACKeys - a colon-separated list of fields to verify with a hash key when submitting a hold form (at a minimum, " | + | * HMACKeys - a colon-separated list of fields to verify with a hash key when submitting a hold form (at a minimum, " |
* extraFields (optional) - a colon-separated list of form fields to include in the request form; may include " | * extraFields (optional) - a colon-separated list of form fields to include in the request form; may include " | ||
* defaultRequiredDate - A colon-separated list used to set the default "not required after" date for requests in the format days: | * defaultRequiredDate - A colon-separated list used to set the default "not required after" date for requests in the format days: | ||
* This only applies if extraFields includes " | * This only applies if extraFields includes " | ||
* helpText - A generic help text displayed on the request form. Displayed as is; HTML tags can be used, and everything needs to be properly escaped. | * helpText - A generic help text displayed on the request form. Displayed as is; HTML tags can be used, and everything needs to be properly escaped. | ||
- | * helpText[*] - (From VuFind | + | * helpText[*] - (From VuFind® |
* helpText[lng] - A language-specific help text displayed on the request form. Displayed as is; HTML tags can be used, and everything needs to be properly escaped. | * helpText[lng] - A language-specific help text displayed on the request form. Displayed as is; HTML tags can be used, and everything needs to be properly escaped. | ||
Line 218: | Line 218: | ||
==== getDefaultPickUpLocation ==== | ==== getDefaultPickUpLocation ==== | ||
- | This method returns the default pick up location code or id for use when placing holds and other requests. (optional) // Not supported prior to VuFind | + | This method returns the default pick up location code or id for use when placing holds and other requests. (optional) // Not supported prior to VuFind® |
- | * Input: Patron array returned by patronLogin method (optional), hold information array similar to placeHold' | + | * Input: Patron array returned by patronLogin method (optional), hold information array similar to placeHold' |
- | * Output: A pick up location id or code (string); starting with VuFind | + | * Output: A pick up location id or code (string); starting with VuFind® |
Line 236: | Line 236: | ||
* Output: An associative array with key = fund ID, value = fund name. | * Output: An associative array with key = fund ID, value = fund name. | ||
- | // | + | // |
==== getHoldDefaultRequiredDate ==== | ==== getHoldDefaultRequiredDate ==== | ||
- | Get Default "Hold Required By" Date (optional). // Not supported until VuFind | + | Get Default "Hold Required By" Date (optional). // Not supported until VuFind® |
:!: This method is only called if the defaultRequiredDate setting in the ILS driver' | :!: This method is only called if the defaultRequiredDate setting in the ILS driver' | ||
Line 247: | Line 247: | ||
</ | </ | ||
- | * Input: Patron array returned by patronLogin method (optional), hold information array similar to placeHold' | + | * Input: Patron array returned by patronLogin method (optional), hold information array similar to placeHold' |
* Output: Unix timestamp (or null if no date available) | * Output: Unix timestamp (or null if no date available) | ||
Line 253: | Line 253: | ||
This method queries the ILS for holding information. | This method queries the ILS for holding information. | ||
- | :!: Starting with VuFind | + | :!: Starting with VuFind® |
- | :!: In VuFind | + | :!: In VuFind® |
* Input: RecordID, output of patronLogin (so that patron-specific data may be added to the return array), additional options (beginning in release 6.0; these may include ' | * Input: RecordID, output of patronLogin (so that patron-specific data may be added to the return array), additional options (beginning in release 6.0; these may include ' | ||
Line 264: | Line 264: | ||
| availability | | availability | ||
| status | | status | ||
- | | location | + | | location |
| location_code | | location_code | ||
| locationhref | | locationhref | ||
Line 275: | Line 275: | ||
| enumchron | | enumchron | ||
| requests_placed | | requests_placed | ||
- | | barcode | + | | barcode |
| notes | string[] | | notes | string[] | ||
| holdings_notes | | holdings_notes | ||
Line 283: | Line 283: | ||
| indexes | | indexes | ||
| is_holdable | | is_holdable | ||
- | | holdtype | + | | holdtype |
- | | addLink | + | | addLink |
| item_id | | item_id | ||
| holdOverride | | holdOverride | ||
Line 302: | Line 302: | ||
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 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. | ||
- | * Input: Bibliographic Record ID, Item details array from getHolding (second parameter is optional and was introduced in VuFind | + | * Input: Bibliographic Record ID, Item details array from getHolding (second parameter is optional and was introduced in VuFind® |
* Output: Link to legacy OPAC for placing hold (or null if no hold link is available for this item). | * Output: Link to legacy OPAC for placing hold (or null if no hold link is available for this item). | ||
==== getILLPickupLibraries ==== | ==== getILLPickupLibraries ==== | ||
- | // Not supported prior to VuFind | + | // Not supported prior to VuFind® |
This method must be implemented if " | This method must be implemented if " | ||
Line 317: | Line 317: | ||
==== getILLPickupLocations ==== | ==== getILLPickupLocations ==== | ||
- | // Not supported prior to VuFind | + | // Not supported prior to VuFind® |
This method must be implemented if " | This method must be implemented if " | ||
Line 343: | Line 343: | ||
* duedate - A string representing the date when the item was due. | * duedate - A string representing the date when the item was due. | ||
* id - The bibliographic ID of the record involved in the fine. | * id - The bibliographic ID of the record involved in the fine. | ||
- | * source - The search backend from which the record may be retrieved (optional - defaults to Solr). // Introduced in VuFind | + | * source - The search backend from which the record may be retrieved (optional - defaults to Solr). // Introduced in VuFind® |
==== getMyHolds ==== | ==== getMyHolds ==== | ||
Line 356: | Line 356: | ||
| id | string | | id | string | ||
| source | | source | ||
- | | item_id | + | | item_id |
- | | location | + | | location |
| reqnum | | reqnum | ||
| expire | | expire | ||
Line 364: | Line 364: | ||
| available | | available | ||
| in_transit | | in_transit | ||
- | | last_pickup_date | locale date string | No | 5.1 | A string representing the deadline for picking up the item; ignored unless available (above) is set to true | | + | | last_pickup_date | locale date string | No | 5.1 | A string representing the deadline for picking up the item; ignored unless available (above) is set to true | |
- | | frozen | + | | frozen |
- | | frozenUntil | + | | frozenThrough |
| cancel_details | | cancel_details | ||
| updateDetails | | updateDetails | ||
- | | title | string | + | | title | string |
| publication_year | string | | publication_year | string | ||
| volume | | volume | ||
Line 376: | Line 376: | ||
| oclc | string | | oclc | string | ||
| upc | string | | upc | string | ||
+ | | proxiedBy | ||
+ | | proxiedFor | ||
==== getMyILLRequests ==== | ==== getMyILLRequests ==== | ||
- | This method queries the ILS for a patron' | + | This method queries the ILS for a patron' |
* Input: Patron array returned by patronLogin method | * Input: Patron array returned by patronLogin method | ||
* Output: Returns an array of associative arrays, one for each request associated with the specified account. Each associative array contains these keys: | * Output: Returns an array of associative arrays, one for each request associated with the specified account. Each associative array contains these keys: | ||
* id - The bibliographic record ID associated with the request (optional). | * id - The bibliographic record ID associated with the request (optional). | ||
- | * source - The search backend from which the record may be retrieved (optional - defaults to Solr). // Introduced in VuFind | + | * source - The search backend from which the record may be retrieved (optional - defaults to Solr). // Introduced in VuFind® |
* location - A string describing the pickup location for the requested item (optional). | * location - A string describing the pickup location for the requested item (optional). | ||
* reqnum - A control number for the request (optional). | * reqnum - A control number for the request (optional). | ||
Line 394: | Line 395: | ||
* issue - The issue of the item (optional). | * issue - The issue of the item (optional). | ||
* year – The publication year of the item (optional). | * year – The publication year of the item (optional). | ||
- | * title - The title of the item (optional -- only used if the record cannot be found in VuFind's index). | + | * title - The title of the item (optional -- only used if the record cannot be found in VuFind®'s index). |
* canceled - Boolean or date (string) indicating that the request has been canceled. | * canceled - Boolean or date (string) indicating that the request has been canceled. | ||
* processed - Boolean or date (string) indicating that the request has been processed. | * processed - Boolean or date (string) indicating that the request has been processed. | ||
Line 411: | Line 412: | ||
* address1 | * address1 | ||
* address2 | * address2 | ||
- | * city (added in VuFind | + | * city (added in VuFind® |
- | * country (added in VuFind | + | * country (added in VuFind® |
* zip | * zip | ||
* phone | * phone | ||
- | * mobile_phone (added in VuFind | + | * mobile_phone (added in VuFind® |
* group -- i.e. Student, Staff, Faculty, etc. | * group -- i.e. Student, Staff, Faculty, etc. | ||
- | * expiration_date -- account expiration date (added in VuFind | + | * expiration_date -- account expiration date (in display format, |
+ | * birthdate (Y-m-d or an empty string, added in VuFind® 9.0) | ||
==== getMyStorageRetrievalRequests ==== | ==== getMyStorageRetrievalRequests ==== | ||
- | This method queries the ILS for a patron' | + | This method queries the ILS for a patron' |
* Input: Patron array returned by patronLogin method | * Input: Patron array returned by patronLogin method | ||
* Output: Returns an array of associative arrays, one for each request associated with the specified account. Each associative array contains these keys: | * Output: Returns an array of associative arrays, one for each request associated with the specified account. Each associative array contains these keys: | ||
* id - The bibliographic record ID associated with the request (optional). | * id - The bibliographic record ID associated with the request (optional). | ||
- | * source - The search backend from which the record may be retrieved (optional - defaults to Solr). // Introduced in VuFind | + | * source - The search backend from which the record may be retrieved (optional - defaults to Solr). // Introduced in VuFind® |
* location - A string describing the pickup location for the requested item (optional). | * location - A string describing the pickup location for the requested item (optional). | ||
* reqnum - A control number for the request (optional). | * reqnum - A control number for the request (optional). | ||
Line 436: | Line 438: | ||
* issue - The issue of the item (optional). | * issue - The issue of the item (optional). | ||
* year – The publication year of the item (optional). | * year – The publication year of the item (optional). | ||
- | * title - The title of the item (optional -- only used if the record cannot be found in VuFind's index). | + | * title - The title of the item (optional -- only used if the record cannot be found in VuFind®'s index). |
* canceled - Boolean or date (string) indicating that the request has been canceled. | * canceled - Boolean or date (string) indicating that the request has been canceled. | ||
* processed - Boolean or date (string) indicating that the request has been processed. | * processed - Boolean or date (string) indicating that the request has been processed. | ||
Line 450: | Line 452: | ||
:!: The getConfig method must return a non-false value for this feature to be enabled. For privacy reasons, the entire feature should be disabled by default unless explicitly turned on in the driver' | :!: The getConfig method must return a non-false value for this feature to be enabled. For privacy reasons, the entire feature should be disabled by default unless explicitly turned on in the driver' | ||
- | // This feature was added in VuFind | + | // This feature was added in VuFind® |
* getConfig may return the following keys if the service supports paging on the ILS side: | * getConfig may return the following keys if the service supports paging on the ILS side: | ||
Line 475: | Line 477: | ||
==== getMyTransactions ==== | ==== getMyTransactions ==== | ||
This method queries the ILS for a patron' | This method queries the ILS for a patron' | ||
- | * Starting with VuFind | + | * Starting with VuFind® |
- | * max_results - Maximum number of results that can be requested at once. Overrides the config.ini Catalog section setting | + | * max_results - Maximum number of results that can be requested at once. Overrides the config.ini Catalog section setting |
* page_size - An array of allowed page sizes (number of records per page) | * page_size - An array of allowed page sizes (number of records per page) | ||
* default_page_size - Default number of records per page | * default_page_size - Default number of records per page | ||
- | * Starting with VuFind | + | * Starting with VuFind® |
* sort - An associative array where each key is a sort key and its value is a translation key | * sort - An associative array where each key is a sort key and its value is a translation key | ||
* default_sort - Default sort key | * default_sort - Default sort key | ||
- | * Input: Patron array returned by patronLogin method, and (starting with VuFind | + | * Input: Patron array returned by patronLogin method, and (starting with VuFind® |
- | * Output: Starting with VuFind | + | * Output: Starting with VuFind® |
* duedate - The item's due date (a string). | * duedate - The item's due date (a string). | ||
* dueTime - The item's due time (a string, optional). | * dueTime - The item's due time (a string, optional). | ||
- | * dueStatus - A special status -- may be ' | + | * dueStatus - A special status -- may be ' |
* id - The bibliographic ID of the checked out item. | * id - The bibliographic ID of the checked out item. | ||
- | * source - The search backend from which the record may be retrieved (optional - defaults to Solr). // Introduced in VuFind | + | * source - The search backend from which the record may be retrieved (optional - defaults to Solr). // Introduced in VuFind® |
* barcode - The barcode of the item (optional). | * barcode - The barcode of the item (optional). | ||
* renew - The number of times the item has been renewed (optional). | * renew - The number of times the item has been renewed (optional). | ||
- | * renewLimit - The maximum number of renewals allowed (optional - introduced in VuFind | + | * renewLimit - The maximum number of renewals allowed (optional - introduced in VuFind® |
* request - The number of pending requests for the item (optional). | * request - The number of pending requests for the item (optional). | ||
* volume – The volume number of the item (optional). | * volume – The volume number of the item (optional). | ||
Line 497: | Line 499: | ||
* renewable – Whether or not an item is renewable (required for renewals). | * renewable – Whether or not an item is renewable (required for renewals). | ||
* message – A message regarding the item (optional). | * message – A message regarding the item (optional). | ||
- | * title - The title of the item (optional -- only used if the record cannot be found in VuFind's index). | + | * title - The title of the item (optional -- only used if the record cannot be found in VuFind®'s index). |
* item_id - this is used to match up renew responses and must match the item_id in the renew response. | * item_id - this is used to match up renew responses and must match the item_id in the renew response. | ||
* institution_name - Display name of the institution that owns the item (optional). Used e.g. with received interlibrary loans (ILL) if they are displayed in the checked out items list (e.g. UB Requests between Voyager libraries). | * institution_name - Display name of the institution that owns the item (optional). Used e.g. with received interlibrary loans (ILL) if they are displayed in the checked out items list (e.g. UB Requests between Voyager libraries). | ||
Line 516: | Line 518: | ||
* Output: An associative array with two keys: ' | * Output: An associative array with two keys: ' | ||
- | // | + | // |
==== getOfflineMode ==== | ==== getOfflineMode ==== | ||
- | This optional method (introduced in VuFind | + | This optional method (introduced in VuFind® |
* Output: string or false, as described above | * Output: string or false, as described above | ||
==== getPickUpLocations ==== | ==== getPickUpLocations ==== | ||
- | This method returns a list of locations where a user may collect a hold. (optional) // Not supported prior to VuFind | + | This method returns a list of locations where a user may collect a hold. (optional) // Not supported prior to VuFind® |
Input: | Input: | ||
Line 537: | Line 539: | ||
| locationID | | locationID | ||
| locationDisplay | | locationDisplay | ||
+ | |||
+ | ==== getProxiedUsers ==== | ||
+ | |||
+ | This method returns a list of users for which the provided user can place proxy requests. // This method was added in VuFind® 9.0. // | ||
+ | |||
+ | * Input: Patron array returned by patronLogin method | ||
+ | * Output: Associative array of user ID => user display name | ||
==== getPurchaseHistory ==== | ==== getPurchaseHistory ==== | ||
Line 548: | Line 557: | ||
==== getRenewDetails ==== | ==== 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 | + | 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® |
* Input: checkOutDetails - One of the individual item arrays returned by the getMyTransactions method | * Input: checkOutDetails - One of the individual item arrays returned by the getMyTransactions method | ||
Line 555: | Line 564: | ||
==== getRequestBlocks ==== | ==== getRequestBlocks ==== | ||
- | This optional method returns an array of strings describing reasons for blocking the active user from placing requests (holds, recalls, etc.). If no blocks are in place, it returns false. // Not supported prior to VuFind | + | This optional method returns an array of strings describing reasons for blocking the active user from placing requests (holds, recalls, etc.). If no blocks are in place, it returns false. // Not supported prior to VuFind® |
* Input: patron (array returned by the driver' | * Input: patron (array returned by the driver' | ||
Line 562: | Line 571: | ||
==== getRequestGroups ==== | ==== getRequestGroups ==== | ||
- | This optional method returns information used to group together collections of pickup locations. // Not supported prior to VuFind | + | This optional method returns information used to group together collections of pickup locations. // Not supported prior to VuFind® |
- | * Input: bibID (of record being requested), Patron Data (from patronLogin() method), holdDetails (Optional array, only passed in when getting a list in the context of placing a hold; contains most of the same values passed to placeHold, minus the patron data. May be used to limit the request group options or may be ignored; added in VuFind | + | * Input: bibID (of record being requested), Patron Data (from patronLogin() method), holdDetails (Optional array, only passed in when getting a list in the context of placing a hold; contains most of the same values passed to placeHold, minus the patron data. May be used to limit the request group options or may be ignored; added in VuFind® |
* Output: False if request groups not in use or an array of associative arrays with id and name keys | * Output: False if request groups not in use or an array of associative arrays with id and name keys | ||
Line 577: | Line 586: | ||
| availability | | availability | ||
| status | | status | ||
- | | location | + | | location |
| reserve | | reserve | ||
| callnumber | | callnumber | ||
Line 594: | Line 603: | ||
==== getSuppressedAuthorityRecords ==== | ==== 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 | + | Return a list of suppressed authority records (used to remove non-visible items from VuFind®'s index). // Note: this method was introduced in VuFind® |
* Output: An array of authority record IDs. | * Output: An array of authority record IDs. | ||
==== getSuppressedRecords ==== | ==== getSuppressedRecords ==== | ||
- | Return a list of suppressed bibliographic records (used to remove non-visible items from VuFind's index). | + | Return a list of suppressed bibliographic records (used to remove non-visible items from VuFind®'s index). |
* Output: An array of bibliographic record IDs. | * Output: An array of bibliographic record IDs. | ||
+ | |||
+ | ==== getUrlsForRecord ==== | ||
+ | This optional method (introduced in VuFind® 9.1) returns one or more ILS-specific links associated with the provided bibliographic record ID. | ||
+ | |||
+ | * Input: Bibliographic record ID | ||
+ | * Output: Link data (in the same format returned by the record driver' | ||
==== hasHoldings ==== | ==== hasHoldings ==== | ||
- | This optional method (introduced in VuFind | + | This optional method (introduced in VuFind® |
* Input: Bibliographic ID | * Input: Bibliographic ID | ||
Line 616: | Line 631: | ||
==== loginIsHidden ==== | ==== loginIsHidden ==== | ||
- | This optional method (introduced in VuFind | + | This optional method (introduced in VuFind® |
* Output: true if login should be hidden, false otherwise. | * Output: true if login should be hidden, false otherwise. | ||
Line 623: | Line 638: | ||
This method processes authentication against the ILS. | This method processes authentication against the ILS. | ||
- | When ILS or MultiILS authentication is used as the login method, the username in VuFind's user table is, by default, taken from cat_username but it's configurable with the ILS_username_field in [Authentication] section of [[configuration: | + | When ILS or MultiILS authentication is used as the login method, the username in VuFind®'s user table is, by default, taken from cat_username but it's configurable with the ILS_username_field in [Authentication] section of [[configuration: |
- | Starting with version 4.0, VuFind | + | Starting with version 4.0, VuFind® |
Depending on the driver and its configuration, | Depending on the driver and its configuration, | ||
Line 641: | Line 656: | ||
==== placeHold ==== | ==== 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 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). |
* Input: holdDetails - An associative array with several keys. ' | * Input: holdDetails - An associative array with several keys. ' | ||
Line 649: | Line 664: | ||
* comment - user comment | * comment - user comment | ||
* id - bibliographic ID | * id - bibliographic ID | ||
- | * level - starting with VuFind | + | * level - starting with VuFind® |
* Output: Associative array containing: | * Output: Associative array containing: | ||
* success – Boolean true or false | * success – Boolean true or false | ||
Line 655: | Line 670: | ||
==== placeILLRequest ==== | ==== placeILLRequest ==== | ||
- | This method places an ILL request on a specific record for a specific patron. (optional) // Not supported prior to VuFind | + | This method places an ILL request on a specific record for a specific patron. (optional) // Not supported prior to VuFind® |
* Input: details - An associative array with several keys. ' | * Input: details - An associative array with several keys. ' | ||
Line 668: | Line 683: | ||
==== placeStorageRetrievalRequest ==== | ==== placeStorageRetrievalRequest ==== | ||
- | This method places a storage retrieval request on a specific record for a specific patron. (optional) // Not supported prior to VuFind | + | This method places a storage retrieval request on a specific record for a specific patron. (optional) // Not supported prior to VuFind® |
* Input: details - An associative array with several keys. ' | * Input: details - An associative array with several keys. ' | ||
Line 681: | Line 696: | ||
==== renewMyItems ==== | ==== 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 | + | 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® |
* Input: renewDetails - An associative array with two keys: | * Input: renewDetails - An associative array with two keys: | ||
* patron - array returned by patronLogin method | * patron - array returned by patronLogin method | ||
Line 695: | Line 710: | ||
==== renewMyItemsLink ==== | ==== renewMyItemsLink ==== | ||
- | 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 | + | 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® |
* Input: checkOutDetails - One of the individual item arrays returned by the getMyTransactions method | * Input: checkOutDetails - One of the individual item arrays returned by the getMyTransactions method | ||
Line 713: | Line 728: | ||
==== updateHolds ==== | ==== updateHolds ==== | ||
- | This method updates a list of holds for a specific patron. (optional) | + | This method updates a list of holds for a specific patron. (optional) |
Input: | Input: | ||
Line 731: | Line 746: | ||
===== Further Reading ===== | ===== Further Reading ===== | ||
- | * [[http:// | + | * [[http:// |
* [[configuration: | * [[configuration: | ||
+ | |||
+ | ===== Related Video ===== | ||
+ | |||
+ | See [[videos: | ||
---- struct data ---- | ---- struct data ---- | ||
+ | properties.Page Owner : | ||
---- | ---- | ||
development/plugins/ils_drivers.txt · Last modified: 2024/06/25 13:35 by demiankatz