diff --git a/local/alpha/config/vufind/DAIA.ini b/local/alpha/config/vufind/DAIA.ini index f2b0c6f49ed83319e3d8d6da3e2606d562f06f77..5428ab9655e03e0235236617fc8fbc387e013950 100644 --- a/local/alpha/config/vufind/DAIA.ini +++ b/local/alpha/config/vufind/DAIA.ini @@ -20,10 +20,3 @@ relative_path = ../../../config/vufind/DAIA.ini ; ;##################### DO NOT DELETE THIS HEADER #################### ;#################################################################### - -;[DAIA] -; refer to http://data.ub.uni-leipzig.de/ldinfo for setting up specific DAIA-urls -;baseUrl = http://data.ub.uni-leipzig.de/item/DE-15/finc/ - -; DAIATheca -; http://139.18.19.238:8080/DaiaThecaMssql/ \ No newline at end of file diff --git a/local/config/vufind/DAIA.ini b/local/config/vufind/DAIA.ini index aad984c296a382b231ad5b5b73fcc300acc9bd44..b2f2ab16c944d82164d62a3a8ebd237e63d7691c 100644 --- a/local/config/vufind/DAIA.ini +++ b/local/config/vufind/DAIA.ini @@ -2,16 +2,7 @@ ; http://gbv.github.io/daiaspec/daia.html#query-api ; ; The settings in the [DAIA] section will be used for all DAIA requests. -; The name of this section got refactored with VuFind 2.4, although the old -; configuration using the [Global] section still works, it should be replaced -; with the new [DAIA] section. -; Note: Settings for daiaResponseFormat and daiaIdPrefix are not supported if -; a pre VuFind 2.4 configuration with the [Global] section is used. -; i.e.: -; [Global] -; baseUrl = [your DAIA server base url] -; daiaIdPrefix = [this setting will have no effect] -; daiaResponseFormat = [this setting will have no effect] +; The name of this section got refactored with VuFind 2.4. ; ; A default DAIA call looks like this: ; https://daia.myuniversity.edu/?id=ppn:12345678&format=json @@ -23,6 +14,11 @@ ; daiaResponseFormat = json ; +[DAIA] +; The base URL for the DAIA webservice. +;baseUrl = http://139.18.19.238:9080/daialibero/daia/ +;baseUrl = http://139.18.19.238:9080/daiatheca/daia/ + ; The prefix prepended to the VuFind record Id resulting in the document URI ; used for the DAIA request (default = ppn:) (the prefix usually defines the ; field which the DAIA server uses for the loookup - e.g. ppn: or isbn:). @@ -31,10 +27,21 @@ ; Set the requested DAIA response format: xml (default), json ;daiaResponseFormat = xml -[Global] -; The base URL for the DAIA webservice. -; refer to http://data.ub.uni-leipzig.de/ldinfo for setting up specific DAIA-urls -baseUrl = http://data.ub.uni-leipzig.de/item/ISIL/identifier/ +; Set multiQuery to true if your DAIA webservice supports queries with multiple +; ids (cf. http://gbv.github.io/daiaspec/daia.html#query-api). +; Default is false. +;multiQuery = false + +; If daiaContentTypes are set, the DAIA driver checks the Content-Type +; line in the DAIA response HTTP header for the configured values. If +; daiaContentTypes is not set, Content-Type HTTP header is NOT checked. +; +; expected Content-Types for DAIA XML format: +; (seperate multiple values by commata, for example: +; daiaContentTypes['xml'] = "application/xml, text/xml" +daiaContentTypes['xml'] = "application/xml" -; DAIATheca -; http://139.18.19.238:8080/DaiaThecaMssql/ \ No newline at end of file +; expected Content-Types for DAIA JSON format: +; (seperate multiple values by commata, for example: +; daiaContentTypes['xml'] = "application/json, application/javascript" +daiaContentTypes['json'] = "application/json" diff --git a/local/dev/config/vufind/DAIA.ini.sample b/local/dev/config/vufind/DAIA.ini.sample index c8ae05ca19f1ef2afc15f7f03db88fc8c6c39e6d..01b53f0a6269adda904c4322500ffefd3cdf0895 100644 --- a/local/dev/config/vufind/DAIA.ini.sample +++ b/local/dev/config/vufind/DAIA.ini.sample @@ -20,10 +20,3 @@ relative_path = ../../../config/vufind/DAIA.ini ; ;##################### DO NOT DELETE THIS HEADER #################### ;#################################################################### - -;[DAIA] -; refer to http://data.ub.uni-leipzig.de/ldinfo for setting up specific DAIA-urls -;baseUrl = http://data.ub.uni-leipzig.de/item/DE-15/finc/ - -; DAIATheca -; http://139.18.19.238:8080/DaiaThecaMssql/ \ No newline at end of file diff --git a/module/finc/src/finc/ILS/Driver/DAIA.php b/module/finc/src/finc/ILS/Driver/DAIA.php index e1d7cc4ef8795270d12b33476319aefd322d6c27..2147ea2d42df9590ad2090236a199adcda38602a 100644 --- a/module/finc/src/finc/ILS/Driver/DAIA.php +++ b/module/finc/src/finc/ILS/Driver/DAIA.php @@ -80,14 +80,6 @@ class DAIA extends \VuFind\ILS\Driver\AbstractBase implements */ protected $multiQuery = false; - /** - * DAIA legacySupport flag - * - * @var boolean - * @deprecated Will be removed in the next driver version - */ - protected $legacySupport = false; - /** * acceptable ContentTypes delivered by DAIA server * in HTTP header @@ -118,13 +110,6 @@ class DAIA extends \VuFind\ILS\Driver\AbstractBase implements */ public function init() { - // DAIA.ini sections changed, therefore move old [Global] section to - // new [DAIA] section as fallback - if (isset($this->config['Global']) && !isset($this->config['DAIA'])) { - $this->config['DAIA'] = $this->config['Global']; - $this->legacySupport = true; - } - if (isset($this->config['DAIA']['baseUrl'])) { $this->baseUrl = $this->config['DAIA']['baseUrl']; } else { @@ -205,25 +190,20 @@ class DAIA extends \VuFind\ILS\Driver\AbstractBase implements return []; } - if ($this->legacySupport) { - // we are in legacySupport mode, so use the deprecated - // getXMLStatus() method - return $this->getXMLStatus($id); - } else { - // let's retrieve the DAIA document by URI - try { - $rawResult = $this->doHTTPRequest($this->generateURI($id)); - // extract the DAIA document for the current id from the - // HTTPRequest's result - $doc = $this->extractDaiaDoc($id, $rawResult); - if (!is_null($doc)) { - // parse the extracted DAIA document and return the status info - return $this->parseDaiaDoc($id, $doc); - } - } catch (ILSException $e) { - $this->debug($e->getMessage()); + // let's retrieve the DAIA document by URI + try { + $rawResult = $this->doHTTPRequest($this->generateURI($id)); + // extract the DAIA document for the current id from the + // HTTPRequest's result + $doc = $this->extractDaiaDoc($id, $rawResult); + if (!is_null($doc)) { + // parse the extracted DAIA document and return the status info + return $this->parseDaiaDoc($id, $doc); } + } catch (ILSException $e) { + $this->debug($e->getMessage()); } + return []; } @@ -234,14 +214,12 @@ class DAIA extends \VuFind\ILS\Driver\AbstractBase implements * collection of records. * As the DAIA Query API supports querying multiple ids simultaneously * (all ids divided by "|") getStatuses(ids) would call getStatus(id) only - * once, id containing the list of ids to be retrieved. Apart from the - * legacySupport this would cause some trouble as the list of ids does not - * necessarily correspond to the VuFind Record-id. Therefore getStatuses(ids) - * has its own logic for multiQuery-support and performs the HTTPRequest - * itself, retrieving one DAIA response for all ids and uses helper - * functions to split this one response into documents corresponding to the - * queried ids. - * If multiQueries are not supported, getStatus(id) is used. + * once, id containing the list of ids to be retrieved. This would cause some + * trouble as the list of ids does not necessarily correspond to the VuFind + * Record-id. Therefore getStatuses(ids) has its own logic for multiQuery-support + * and performs the HTTPRequest itself, retrieving one DAIA response for all ids + * and uses helper functions to split this one response into documents + * corresponding to the queried ids. * * @param array $ids The array of record ids to retrieve the status for * @@ -251,49 +229,41 @@ class DAIA extends \VuFind\ILS\Driver\AbstractBase implements { $status = []; - if ($this->legacySupport) { - // we are in legacySupport mode, so use the deprecated - // getXMLStatus() method for each id - foreach ($ids as $id) { - $status[] = $this->getXMLShortStatus($id); - } - } else { - try { - if ($this->multiQuery) { - // perform one DAIA query with multiple URIs - $rawResult = $this - ->doHTTPRequest($this->generateMultiURIs($ids)); - // the id used in VuFind can differ from the document-URI - // (depending on how the URI is generated) - foreach ($ids as $id) { - // it is assumed that each DAIA document has a unique URI, - // so get the document with the corresponding id - $doc = $this->extractDaiaDoc($id, $rawResult); - if (!is_null($doc)) { - // a document with the corresponding id exists, which - // means we got status information for that record - $status[] = $this->parseDaiaDoc($id, $doc); - } - unset($doc); + try { + if ($this->multiQuery) { + // perform one DAIA query with multiple URIs + $rawResult = $this + ->doHTTPRequest($this->generateMultiURIs($ids)); + // the id used in VuFind can differ from the document-URI + // (depending on how the URI is generated) + foreach ($ids as $id) { + // it is assumed that each DAIA document has a unique URI, + // so get the document with the corresponding id + $doc = $this->extractDaiaDoc($id, $rawResult); + if (!is_null($doc)) { + // a document with the corresponding id exists, which + // means we got status information for that record + $status[] = $this->parseDaiaDoc($id, $doc); } - } else { - // multiQuery is not supported, so retrieve DAIA documents one by - // one - foreach ($ids as $id) { - $rawResult = $this->doHTTPRequest($this->generateURI($id)); - // extract the DAIA document for the current id from the - // HTTPRequest's result - $doc = $this->extractDaiaDoc($id, $rawResult); - if (!is_null($doc)) { - // parse the extracted DAIA document and save the status - // info - $status[] = $this->parseDaiaDoc($id, $doc); - } + unset($doc); + } + } else { + // multiQuery is not supported, so retrieve DAIA documents one by + // one + foreach ($ids as $id) { + $rawResult = $this->doHTTPRequest($this->generateURI($id)); + // extract the DAIA document for the current id from the + // HTTPRequest's result + $doc = $this->extractDaiaDoc($id, $rawResult); + if (!is_null($doc)) { + // parse the extracted DAIA document and save the status + // info + $status[] = $this->parseDaiaDoc($id, $doc); } } - } catch (ILSException $e) { - $this->debug($e->getMessage()); } + } catch (ILSException $e) { + $this->debug($e->getMessage()); } return $status; } @@ -358,19 +328,10 @@ class DAIA extends \VuFind\ILS\Driver\AbstractBase implements ]; try { - if ($this->legacySupport) { - // HttpRequest for DAIA legacy support as all - // the parameters are contained in the baseUrl - $result = $this->httpService->get( - $this->baseUrl . $id, - [], null, $http_headers - ); - } else { - $result = $this->httpService->get( - $this->baseUrl, - $params, null, $http_headers - ); - } + $result = $this->httpService->get( + $this->baseUrl, + $params, null, $http_headers + ); } catch (\Exception $e) { throw new ILSException( 'HTTP request exited with Exception ' . $e->getMessage() . @@ -425,11 +386,7 @@ class DAIA extends \VuFind\ILS\Driver\AbstractBase implements */ protected function generateURI($id) { - if ($this->legacySupport) { - return $id; - } else { - return $this->daiaIdPrefix . $id; - } + return $this->daiaIdPrefix . $id; } /** @@ -880,441 +837,4 @@ class DAIA extends \VuFind\ILS\Driver\AbstractBase implements } } } - - /** - * Flatten a DAIA response to an array of holding information. - * - * @param string $id Document to look up. - * - * @return array - * - * @deprecated Only kept for legacySupport - */ - protected function getXMLStatus($id) - { - $daia = new DOMDocument(); - $response = $this->doHTTPRequest($id); - if ($response) { - $daia->loadXML($response); - } - // get Availability information from DAIA - $documentlist = $daia->getElementsByTagName('document'); - - // handle empty DAIA response - if ($documentlist->length == 0 - && $daia->getElementsByTagName("message") != null - ) { - // analyse the message for the error handling and debugging - } - - $status = []; - for ($b = 0; $documentlist->item($b) !== null; $b++) { - $itemlist = $documentlist->item($b)->getElementsByTagName('item'); - $ilslink = ''; - if ($documentlist->item($b)->attributes->getNamedItem('href') !== null) { - $ilslink = $documentlist->item($b)->attributes - ->getNamedItem('href')->nodeValue; - } - $emptyResult = [ - 'callnumber' => '-', - 'availability' => '0', - 'number' => 1, - 'reserve' => 'No', - 'duedate' => '', - 'queue' => '', - 'delay' => '', - 'barcode' => 'No samples', - 'status' => '', - 'id' => $id, - 'location' => '', - 'ilslink' => $ilslink, - 'label' => 'No samples' - ]; - for ($c = 0; $itemlist->item($c) !== null; $c++) { - $result = [ - 'callnumber' => '', - 'availability' => '0', - 'number' => ($c+1), - 'reserve' => 'No', - 'duedate' => '', - 'queue' => '', - 'delay' => '', - 'barcode' => 1, - 'status' => '', - 'id' => $id, - 'item_id' => '', - 'recallhref' => '', - 'location' => '', - 'location.id' => '', - 'location.href' => '', - 'label' => '', - 'notes' => [], - ]; - if ($itemlist->item($c)->attributes->getNamedItem('id') !== null) { - $result['item_id'] = $itemlist->item($c)->attributes - ->getNamedItem('id')->nodeValue; - } - if ($itemlist->item($c)->attributes->getNamedItem('href') !== null) { - $result['recallhref'] = $itemlist->item($c)->attributes - ->getNamedItem('href')->nodeValue; - } - $departmentElements = $itemlist->item($c) - ->getElementsByTagName('department'); - if ($departmentElements->length > 0) { - if ($departmentElements->item(0)->nodeValue) { - $result['location'] - = $departmentElements->item(0)->nodeValue; - $result['location.id'] = $departmentElements - ->item(0)->attributes->getNamedItem('id')->nodeValue; - $result['location.href'] = $departmentElements - ->item(0)->attributes->getNamedItem('href')->nodeValue; - } - } - $storageElements - = $itemlist->item($c)->getElementsByTagName('storage'); - if ($storageElements->length > 0) { - if ($storageElements->item(0)->nodeValue) { - $result['location'] = $storageElements->item(0)->nodeValue; - //$result['location.id'] = $storageElements->item(0) - // ->attributes->getNamedItem('id')->nodeValue; - $href = $storageElements->item(0)->attributes - ->getNamedItem('href'); - if ($href !== null) { - //href attribute is recommended but not mandatory - $result['location.href'] = $storageElements->item(0) - ->attributes->getNamedItem('href')->nodeValue; - } - //$result['barcode'] = $result['location.id']; - } - } - $barcodeElements - = $itemlist->item($c)->getElementsByTagName('identifier'); - if ($barcodeElements->length > 0) { - if ($barcodeElements->item(0)->nodeValue) { - $result['barcode'] = $barcodeElements->item(0)->nodeValue; - } - } - $labelElements = $itemlist->item($c)->getElementsByTagName('label'); - if ($labelElements->length > 0) { - if ($labelElements->item(0)->nodeValue) { - $result['label'] = $labelElements->item(0)->nodeValue; - $result['callnumber'] - = urldecode($labelElements->item(0)->nodeValue); - } - } - $messageElements - = $itemlist->item($c)->getElementsByTagName('message'); - if ($messageElements->length > 0) { - for ($m = 0; $messageElements->item($m) !== null; $m++) { - $errno = $messageElements->item($m)->attributes - ->getNamedItem('errno')->nodeValue; - if ($errno === '404') { - $result['status'] = 'missing'; - } else if ($this->logger) { - $lang = $messageElements->item($m)->attributes - ->getNamedItem('lang')->nodeValue; - $logString = "[DAIA] message for {$lang}: " - . $messageElements->item($m)->nodeValue; - $this->debug($logString); - } - } - } - - //$loanAvail = 0; - //$loanExp = 0; - //$presAvail = 0; - //$presExp = 0; - - $unavailableElements = $itemlist->item($c) - ->getElementsByTagName('unavailable'); - if ($unavailableElements->item(0) !== null) { - for ($n = 0; $unavailableElements->item($n) !== null; $n++) { - $service = $unavailableElements->item($n)->attributes - ->getNamedItem('service'); - $expectedNode = $unavailableElements->item($n)->attributes - ->getNamedItem('expected'); - $queueNode = $unavailableElements->item($n)->attributes - ->getNamedItem('queue'); - if ($service !== null) { - $service = $service->nodeValue; - if ($service === 'presentation') { - $result['presentation.availability'] = '0'; - $result['presentation_availability'] = '0'; - if ($expectedNode !== null) { - $result['presentation.duedate'] - = $expectedNode->nodeValue; - } - if ($queueNode !== null) { - $result['presentation.queue'] - = $queueNode->nodeValue; - } - $result['availability'] = '0'; - } elseif ($service === 'loan') { - $result['loan.availability'] = '0'; - $result['loan_availability'] = '0'; - if ($expectedNode !== null) { - $result['loan.duedate'] - = $expectedNode->nodeValue; - } - if ($queueNode !== null) { - $result['loan.queue'] = $queueNode->nodeValue; - } - $result['availability'] = '0'; - } elseif ($service === 'interloan') { - $result['interloan.availability'] = '0'; - if ($expectedNode !== null) { - $result['interloan.duedate'] - = $expectedNode->nodeValue; - } - if ($queueNode !== null) { - $result['interloan.queue'] - = $queueNode->nodeValue; - } - $result['availability'] = '0'; - } elseif ($service === 'openaccess') { - $result['openaccess.availability'] = '0'; - if ($expectedNode !== null) { - $result['openaccess.duedate'] - = $expectedNode->nodeValue; - } - if ($queueNode !== null) { - $result['openaccess.queue'] - = $queueNode->nodeValue; - } - $result['availability'] = '0'; - } - } - // TODO: message/limitation - if ($expectedNode !== null) { - $result['duedate'] = $expectedNode->nodeValue; - } - if ($queueNode !== null) { - $result['queue'] = $queueNode->nodeValue; - } - } - } - - $availableElements = $itemlist->item($c) - ->getElementsByTagName('available'); - if ($availableElements->item(0) !== null) { - for ($n = 0; $availableElements->item($n) !== null; $n++) { - $service = $availableElements->item($n)->attributes - ->getNamedItem('service'); - $delayNode = $availableElements->item($n)->attributes - ->getNamedItem('delay'); - if ($service !== null) { - $service = $service->nodeValue; - if ($service === 'presentation') { - $result['presentation.availability'] = '1'; - $result['presentation_availability'] = '1'; - if ($delayNode !== null) { - $result['presentation.delay'] - = $delayNode->nodeValue; - } - $result['availability'] = '1'; - } elseif ($service === 'loan') { - $result['loan.availability'] = '1'; - $result['loan_availability'] = '1'; - if ($delayNode !== null) { - $result['loan.delay'] = $delayNode->nodeValue; - } - $result['availability'] = '1'; - } elseif ($service === 'interloan') { - $result['interloan.availability'] = '1'; - if ($delayNode !== null) { - $result['interloan.delay'] - = $delayNode->nodeValue; - } - $result['availability'] = '1'; - } elseif ($service === 'openaccess') { - $result['openaccess.availability'] = '1'; - if ($delayNode !== null) { - $result['openaccess.delay'] - = $delayNode->nodeValue; - } - $result['availability'] = '1'; - } - } - // TODO: message/limitation - if ($delayNode !== null) { - $result['delay'] = $delayNode->nodeValue; - } - } - } - // document has no availability elements, so set availability - // and barcode to -1 - if ($availableElements->item(0) === null - && $unavailableElements->item(0) === null - ) { - $result['availability'] = '-1'; - $result['barcode'] = '-1'; - } - $result['ilslink'] = $ilslink; - $status[] = $result; - /* $status = "available"; - if (loanAvail) return 0; - if (presAvail) { - if (loanExp) return 1; - return 2; - } - if (loanExp) return 3; - if (presExp) return 4; - return 5; - */ - } - if (count($status) === 0) { - $status[] = $emptyResult; - } - } - return $status; - } - - /** - * Return an abbreviated set of status information. - * - * @param string $id The record id to retrieve the status for - * - * @return mixed On success, an associative array with the following keys: - * id, availability (boolean), status, location, reserve, callnumber, duedate, - * number - * - * @deprecated Only kept for legacySupport - */ - public function getXMLShortStatus($id) - { - $daia = new DOMDocument(); - $response = $this->doHTTPRequest($id); - if ($response) { - $daia->loadXML($response); - } - // get Availability information from DAIA - $itemlist = $daia->getElementsByTagName('item'); - $label = "Unknown"; - $storage = "Unknown"; - $presenceOnly = '1'; - $holding = []; - for ($c = 0; $itemlist->item($c) !== null; $c++) { - $earliest_href = ''; - $storageElements = $itemlist->item($c)->getElementsByTagName('storage'); - if ($storageElements->item(0) && $storageElements->item(0)->nodeValue) { - if ($storageElements->item(0)->nodeValue === 'Internet') { - $href = $storageElements->item(0)->attributes - ->getNamedItem('href')->nodeValue; - $storage = '<a href="' . $href . '">' . $href . '</a>'; - } else { - $storage = $storageElements->item(0)->nodeValue; - } - } - $labelElements = $itemlist->item($c)->getElementsByTagName('label'); - if ($labelElements->item(0)->nodeValue) { - $label = $labelElements->item(0)->nodeValue; - } - $availableElements = $itemlist->item($c) - ->getElementsByTagName('available'); - if ($availableElements->item(0) !== null) { - $availability = 1; - $status = 'Available'; - $href = $availableElements->item(0)->attributes - ->getNamedItem('href'); - if ($href !== null) { - $earliest_href = $href->nodeValue; - } - for ($n = 0; $availableElements->item($n) !== null; $n++) { - $svc = $availableElements->item($n)->getAttribute('service'); - if ($svc === 'loan') { - $presenceOnly = '0'; - } - // $status .= ' ' . $svc; - } - } else { - $leanable = 1; - $unavailableElements = $itemlist->item($c) - ->getElementsByTagName('unavailable'); - if ($unavailableElements->item(0) !== null) { - $earliest = []; - $queue = []; - $hrefs = []; - for ($n = 0; $unavailableElements->item($n) !== null; $n++) { - $unavailHref = $unavailableElements->item($n)->attributes - ->getNamedItem('href'); - if ($unavailHref !== null) { - $hrefs['item' . $n] = $unavailHref->nodeValue; - } - $expectedNode = $unavailableElements->item($n)->attributes - ->getNamedItem('expected'); - if ($expectedNode !== null) { - //$duedate = $expectedNode->nodeValue; - //$duedate_arr = explode('-', $duedate); - //$duedate_timestamp = mktime( - // '0', '0', '0', $duedate_arr[1], $duedate_arr[2], - // $duedate_arr[0] - //); - //array_push($earliest, array( - // 'expected' => $expectedNode->nodeValue, - // 'recall' => $unavailHref->nodeValue); - //array_push($earliest, $expectedNode->nodeValue); - $earliest['item' . $n] = $expectedNode->nodeValue; - } else { - array_push($earliest, "0"); - } - $queueNode = $unavailableElements->item($n)->attributes - ->getNamedItem('queue'); - if ($queueNode !== null) { - $queue['item' . $n] = $queueNode->nodeValue; - } else { - array_push($queue, "0"); - } - } - } - if (count($earliest) > 0) { - arsort($earliest); - $earliest_counter = 0; - foreach ($earliest as $earliest_key => $earliest_value) { - if ($earliest_counter === 0) { - $earliest_duedate = $earliest_value; - $earliest_href = isset($hrefs[$earliest_key]) - ? $hrefs[$earliest_key] : ''; - $earliest_queue = isset($queue[$earliest_key]) - ? $queue[$earliest_key] : ''; - } - $earliest_counter = 1; - } - } else { - $leanable = 0; - } - $messageElements = $itemlist->item($c) - ->getElementsByTagName('message'); - if ($messageElements->length > 0) { - $errno = $messageElements->item(0)->attributes - ->getNamedItem('errno')->nodeValue; - if ($errno === '404') { - $status = 'missing'; - } - } - if (!isset($status)) { - $status = 'Unavailable'; - } - $availability = 0; - } - $reserve = 'N'; - if (isset($earliest_queue) && $earliest_queue > 0) { - $reserve = 'Y'; - } - $holding[] = [ - 'availability' => $availability, - 'id' => $id, - 'status' => isset($status) ? "$status" : '', - 'location' => isset($storage) ? "$storage" : '', - 'reserve' => isset($reserve) ? $reserve : '', - 'queue' => isset($earliest_queue) ? $earliest_queue : '', - 'callnumber' => isset($label) ? "$label" : '', - 'duedate' => isset($earliest_duedate) ? $earliest_duedate : '', - 'leanable' => isset($leanable) ? $leanable : '', - 'recallhref' => isset($earliest_href) ? $earliest_href : '', - 'number' => ($c+1), - 'presenceOnly' => isset($presenceOnly) ? $presenceOnly : '', - ]; - } - return $holding; - } } \ No newline at end of file diff --git a/module/finc/src/finc/ILS/Driver/FincILS.php b/module/finc/src/finc/ILS/Driver/FincILS.php index 8b6af33ba44beb3ba7ee9d7d1721a8d2a3261193..9d1a6879b3418ee81fcd1840ce58f3aa207cbedf 100644 --- a/module/finc/src/finc/ILS/Driver/FincILS.php +++ b/module/finc/src/finc/ILS/Driver/FincILS.php @@ -103,49 +103,25 @@ class FincILS extends PAIA implements LoggerAwareInterface { parent::init(); - // due to section naming changes in DAIA.ini switch legacySupport - if ($this->legacySupport) { - // set the ILS-specific recordId for interaction with ILS + // set the ILS-specific recordId for interaction with ILS - // get the ILS-specific identifier - if (!isset($this->config['Global']['ilsIdentifier'])) { - $this->debug( - "No ILS-specific identifier configured, setting ilsIdentifier=default." - ); - $this->ilsIdentifier = "default"; - } else { - $this->ilsIdentifier = $this->config['Global']['ilsIdentifier']; - } - - // get ISIL from config if ILS-specific recordId is barcode for - // interaction with ILS - if (!isset($this->mainConfig['InstitutionInfo']['isil'])) { - $this->debug("No ISIL defined in section InstitutionInfo in config.ini."); - $this->isil = []; - } else { - $this->isil = $this->mainConfig['InstitutionInfo']['isil']->toArray(); - } + // get the ILS-specific identifier + if (!isset($this->config['DAIA']['ilsIdentifier'])) { + $this->debug( + "No ILS-specific identifier configured, setting ilsIdentifier=default." + ); + $this->ilsIdentifier = "default"; } else { - // set the ILS-specific recordId for interaction with ILS - - // get the ILS-specific identifier - if (!isset($this->config['DAIA']['ilsIdentifier'])) { - $this->debug( - "No ILS-specific identifier configured, setting ilsIdentifier=default." - ); - $this->ilsIdentifier = "default"; - } else { - $this->ilsIdentifier = $this->config['DAIA']['ilsIdentifier']; - } + $this->ilsIdentifier = $this->config['DAIA']['ilsIdentifier']; + } - // get ISIL from config if ILS-specific recordId is barcode for - // interaction with ILS - if (!isset($this->mainConfig['InstitutionInfo']['isil'])) { - $this->debug("No ISIL defined in section InstitutionInfo in config.ini."); - $this->isil = []; - } else { - $this->isil = $this->mainConfig['InstitutionInfo']['isil']->toArray(); - } + // get ISIL from config if ILS-specific recordId is barcode for + // interaction with ILS + if (!isset($this->mainConfig['InstitutionInfo']['isil'])) { + $this->debug("No ISIL defined in section InstitutionInfo in config.ini."); + $this->isil = []; + } else { + $this->isil = $this->mainConfig['InstitutionInfo']['isil']->toArray(); } $this->_testILSConnections();