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