/** * Parse OpenURL and return a keyed array * * @return array Parsed OpenURL values */ protected function parseOpenURL() { $title = ''; $author = ''; $isbn = ''; $issn = ''; $eissn = ''; $date = ''; $volume = ''; $issue = ''; $spage = ''; $journal = false; if (isset($_REQUEST['url_ver']) && $_REQUEST['url_ver'] == 'Z39.88-2004') { // Parse OpenURL 1.0 if (isset($_REQUEST['rft_val_fmt']) && $_REQUEST['rft_val_fmt'] == 'info:ofi/fmt:kev:mtx:book') { // Book format if (isset($_REQUEST['rft_btitle'])) { $title = $_REQUEST['rft_btitle']; } else { if (isset($_REQUEST['rft_title'])) { $title = $_REQUEST['rft_title']; } } $isbn = isset($_REQUEST['rft_isbn']) ? $_REQUEST['rft_isbn'] : ''; } else { // Journal / Article / something $journal = true; if (isset($_REQUEST['rft_atitle'])) { $title = $_REQUEST['rft_atitle']; } else { if (isset($_REQUEST['rft_jtitle'])) { $title = $_REQUEST['rft_jtitle']; } else { if (isset($_REQUEST['rft_title'])) { $title = $_REQUEST['rft_title']; } } } $eissn = isset($_REQUEST['rft_eissn']) ? $_REQUEST['rft_eissn'] : ''; } if (isset($_REQUEST['rft_aulast'])) { $author = $_REQUEST['rft_aulast']; } if (isset($_REQUEST['rft_aufirst'])) { $author .= ' ' . $_REQUEST['rft_aufirst']; } else { if (isset($_REQUEST['rft_auinit'])) { $author .= ' ' . $_REQUEST['rft_auinit']; } } $issn = isset($_REQUEST['rft_issn']) ? $_REQUEST['rft_issn'] : ''; $date = isset($_REQUEST['rft_date']) ? $_REQUEST['rft_date'] : ''; $volume = isset($_REQUEST['rft_volume']) ? $_REQUEST['rft_volume'] : ''; $issue = isset($_REQUEST['rft_issue']) ? $_REQUEST['rft_issue'] : ''; $spage = isset($_REQUEST['rft_spage']) ? $_REQUEST['rft_spage'] : ''; } else { // OpenURL 0.1 $issn = isset($_REQUEST['issn']) ? $_REQUEST['issn'] : ''; $date = isset($_REQUEST['date']) ? $_REQUEST['date'] : ''; $volume = isset($_REQUEST['volume']) ? $_REQUEST['volume'] : ''; $issue = isset($_REQUEST['issue']) ? $_REQUEST['issue'] : ''; $spage = isset($_REQUEST['spage']) ? $_REQUEST['spage'] : ''; $isbn = isset($_REQUEST['isbn']) ? $_REQUEST['isbn'] : ''; if (isset($_REQUEST['atitle'])) { $title = $_REQUEST['atitle']; } else { if (isset($_REQUEST['jtitle'])) { $title = $_REQUEST['jtitle']; } else { if (isset($_REQUEST['btitle'])) { $title = $_REQUEST['btitle']; } else { if (isset($_REQUEST['title'])) { $title = $_REQUEST['title']; } } } } if (isset($_REQUEST['aulast'])) { $author = $_REQUEST['aulast']; } if (isset($_REQUEST['aufirst'])) { $author .= ' ' . $_REQUEST['aufirst']; } else { if (isset($_REQUEST['auinit'])) { $author .= ' ' . $_REQUEST['auinit']; } } } if (ISBN::isValidISBN10($isbn) || ISBN::isValidISBN13($isbn)) { $isbnObj = new ISBN($isbn); $isbn = $isbnObj->get13(); } return compact('journal', 'title', 'author', 'isbn', 'issn', 'eissn', 'date', 'volume', 'issue', 'spage'); }
/** * Checks if passed string is an ISBN and converts to ISBN 13 * * @param string $lookfor The query string * * @return valid ISBN 13 or false * @access protected */ protected function normalizeIfValidISBN($lookfor = false) { if (!$lookfor) { return false; } if (ISBN::isValidISBN10($lookfor) || ISBN::isValidISBN13($lookfor)) { $isbn = new ISBN($lookfor); return $isbn->get13(); } return false; }