Example #1
0
 /**
  * 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');
 }
Example #2
0
 /**
  * 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;
 }