public function getIsbn() { require_once ROOT_DIR . '/sys/ISBN.php'; $isbns = $this->getPropertyArray('isbn'); if (count($isbns) == 0) { return null; } else { $isbn = ISBN::normalizeISBN($isbns[0]); return $isbn; } }
function getGoDeeperData() { require_once ROOT_DIR . '/services/Record/Enrichment.php'; $record = $this->loadSolrRecord($_GET['id']); $type = $_GET['type']; $isbn = isset($record['isbn']) ? ISBN::normalizeISBN($record['isbn'][0]) : null; $upc = isset($record['upc']) ? $record['upc'][0] : null; //Load go deeper data require_once ROOT_DIR . '/Drivers/marmot_inc/GoDeeperData.php'; $goDeeperOptions = GoDeeperData::getHtmlData($type, 'vufind', $isbn, $upc); return $goDeeperOptions; }
/** * @param string $sourceSolrId * @param string $isbn * @param integer $numResourcesToLoad * @param Solr $db * @return null */ private static function getXISBN($sourceSolrId, $isbn, $numResourcesToLoad, $db) { global $configArray; // Build URL $url = 'http://xisbn.worldcat.org/webservices/xid/isbn/' . urlencode(is_array($isbn) ? $isbn[0] : $isbn) . '?method=getEditions&format=csv'; if (isset($configArray['WorldCat']['id'])) { $url .= '&ai=' . $configArray['WorldCat']['id']; } // Print Debug code if ($configArray['System']['debug']) { global $logger; $logger->log("<pre>XISBN: {$url}</pre>", PEAR_LOG_INFO); } // Fetch results $query = ''; if ($fp = @fopen($url, "r")) { while (($data = fgetcsv($fp, 1000, ",")) !== FALSE) { // If we got an error message, don't treat it as an ISBN! if ($data[0] == 'overlimit') { continue; } if ($query != '') { $query .= ' OR isbn:' . $data[0]; } else { $query = 'isbn:' . $data[0]; } } } if (strlen($query) == 0) { //Get ISBNs from the record itself $record = $db->getRecord($sourceSolrId); if ($record) { if (isset($record['isbn'])) { $isbns = is_array($record['isbn']) ? $record['isbn'] : array($record['isbn']); foreach ($isbns as $tmpIsbn) { $tmpIsbn = ISBN::normalizeISBN($tmpIsbn); if ($query != '') { $query .= ' OR isbn:' . $tmpIsbn; } else { $query = 'isbn:' . $tmpIsbn; } } } if (isset($record['grouping_term'])) { $query .= ' OR grouping_term:"' . $record['grouping_term'] . '"'; } } } if ($query != '') { // Filter out current record $query .= ' NOT id:' . $sourceSolrId; $result = $db->search($query, null, null, 0, $numResourcesToLoad); if (!PEAR_Singleton::isError($result)) { if (isset($result['response']['docs']) && !empty($result['response']['docs'])) { return $result['response']['docs']; } else { return null; } } else { return $result; } } else { return null; } }
/** * Get records similar to one record * Uses MoreLikeThis Request Handler * * Uses SOLR MLT Query Handler * * @access public * @var string $id The id to retrieve similar titles for * @var array $originalResult The original record we are getting similar titles for. * @throws object PEAR Error * @return array An array of query results * */ function getMoreLikeThis2($id, $originalResult = null) { if ($originalResult == null) { $originalResult = $this->getRecord($id); } // Query String Parameters $options = array('q' => "id:{$id}", 'qt' => 'morelikethis2', 'mlt.interestingTerms' => 'details', 'rows' => 25); if ($originalResult) { $options['fq'] = array(); if (isset($originalResult['target_audience_full'])) { $options['fq'][] = 'target_audience_full:"' . $originalResult['target_audience_full'] . '"'; } if (isset($originalResult['literary_form'])) { $options['fq'][] = 'literary_form:"' . $originalResult['literary_form'] . '"'; } if (isset($originalResult['language'])) { $options['fq'][] = 'language:"' . $originalResult['language'][0] . '"'; } //Don't want to get other editions of the same work (that's a different query) if (isset($originalResult['isbn'])) { if (is_array($originalResult['isbn'])) { foreach ($originalResult['isbn'] as $isbn) { $options['fq'][] = '-isbn:' . ISBN::normalizeISBN($isbn); } } else { $options['fq'][] = '-isbn:' . ISBN::normalizeISBN($originalResult['isbn']); } } if (isset($originalResult['upc'])) { if (is_array($originalResult['upc'])) { foreach ($originalResult['upc'] as $upc) { $options['fq'][] = '-upc:' . ISBN::normalizeISBN($upc); } } else { $options['fq'][] = '-upc:' . ISBN::normalizeISBN($originalResult['upc']); } } } $searchLibrary = Library::getSearchLibrary(); $searchLocation = Location::getSearchLocation(); $scopingFilters = $this->getScopingFilters($searchLibrary, $searchLocation); foreach ($scopingFilters as $filter) { $options['fq'][] = $filter; } $boostFactors = $this->getBoostFactors($searchLibrary, $searchLocation); $options['bf'] = $boostFactors; if (!empty($this->_solrShards) && is_array($this->_solrShards)) { $options['shards'] = implode(',', $this->_solrShards); } $result = $this->_select('GET', $options); if (PEAR_Singleton::isError($result)) { PEAR_Singleton::raiseError($result); } return $result; }