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