Podgląd pliku: / books / includes / YAZ.php
<?php
/*****************************************************
* System biblioteczny *
*****************************************************
* Wersja: 1.3 Stable *
* Data: 17.06.2012 (15:07) *
* Autor: Jacek Kowalski (http://jacekk.info) *
* *
* Utwor rozprowadzany na licencji *
* http://creativecommons.org/licenses/by-nc-sa/2.5/ *
*****************************************************/
if(!extension_loaded('yaz')) {
error::add('Brak rozszerzenia YAZ. Wyszukiwanie w bazach Biblioteki Narodowej niemożliwe.');
}
class YAZ {
private static $connection;
static $timeout = 10;
static function connect($host) {
self::$connection = yaz_connect($host, array('charset' => 'UTF-8'));
yaz_syntax(self::$connection, 'marc21');
}
static function search($query, $start=1, $num=10) {
yaz_search(self::$connection, 'rpn', $query);
yaz_range(self::$connection, $start, $num);
yaz_wait();
self::is_error();
}
static function scan($query) {
yaz_scan(self::$connection, 'rpn', $query);
yaz_wait();
self::is_error();
}
static function scan_result() {
return yaz_scan_result(self::$connection);
}
static function scan_get($start=1, $num=10) {
yaz_range(self::$connection, $start, $num);
yaz_present(self::$connection);
yaz_wait();
self::is_error();
}
static function hits() {
return yaz_hits(self::$connection);
}
static function return_MARCs() {
$hits = self::hits();
$records = array();
$time = time();
for($i=1; $i<=$hits; $i++) {
if($time+self::$timeout <= time()) {
break;
}
$record = yaz_record(self::$connection, $i, 'raw');
$records[] = MARC21::from_string($record);
}
return $records;
}
static function return_arrays() {
$return = array();
$MARCs = self::return_MARCs();
foreach($MARCs as $MARC) {
$return[] = MARC21::to_array( $MARC );
}
return $return;
}
static function is_error() {
if($e = yaz_error(self::$connection)) {
error::add('Błąd YAZ: '.$e);
}
else
{
return FALSE;
}
}
}
?>
Browse Code © 2010 by Jacek Kowalski