Podgląd pliku: / books_opac / includes / okladki.php


<?php
/***************************************************** 
 *         System biblioteczny - Modul OPAC          * 
 ***************************************************** 
 * Wersja: 1.2 Stable                                * 
 * Data: 21.08.2010 (13:45)                          * 
 * Autor: Jacek Kowalski (http://jacekk.info)        * 
 *                                                   * 
 * Strona WWW: http://dev.jacekk.net/books           * 
 *                                                   * 
 * Utwor rozprowadzany na licencji                   * 
 * http://creativecommons.org/licenses/by-nc-sa/2.5/ * 
 *****************************************************/

class okladki {
    static function 
znajdz($KOD$ISBN$dir 'covers') {
        if(
strlen($KOD)<=&& ctype_digit($KOD)) {
            
validate::KOD($KOD);
            
            if(
file_exists('./'.$dir.'/own/'.$KOD)) {
                return 
'./'.$dir.'/own/'.$KOD;
            }
        }
        
        if(
strlen($ISBN)==13) {
            
validate::EAN($ISBN);
            
            if(
substr($ISBN03)=='978') {
                
$ISBN10 convert::ISBN13_to_ISBN10($ISBN);
            }
            else
            {
                
$ISBN10 $ISBN;
            }
            
            if(
file_exists('./'.$dir.'/own/'.$ISBN)) {
                return 
'./'.$dir.'/own/'.$ISBN;
            }
            
            if(
self::librarything($ISBN$dir)!==FALSE) {
                return 
'./'.$dir.'/'.$ISBN;
            }
        }
        
        return 
FALSE;
    }
    
    static function 
librarything($ISBN$dir 'covers') {
        if(!
function_exists('curl_init') || !ksiazki::$LT_API) {
            return 
FALSE;
        }
        
        
// Okładkę już mamy
        
if(file_exists('./'.$dir.'/'.$ISBN)) {
            if(
filesize('./'.$dir.'/'.$ISBN)>0) {
                return 
NULL;
            }
            
            
// Negatywne cache'owanie
            
if(filesize('./'.$dir.'/'.$ISBN)==AND filemtime('./'.$dir.'/'.$ISBN)+(30*24*60*60) > time()) {
                return 
FALSE;
            }
        }
        
        
$get 'http://www.librarything.com/devkey/'.ksiazki::$LT_API.'/'.($dir=='covers_big' 'large' 'small').'/isbn/'.$ISBN10;
        
$curl curl_init($get);
        
curl_setopt($curlCURLOPT_FOLLOWLOCATIONTRUE);
        
curl_setopt($curlCURLOPT_RETURNTRANSFERTRUE);
        
        
$img = @curl_exec($curl);
        
$code curl_getinfo($curlCURLINFO_HTTP_CODE);
        
$type curl_getinfo($curlCURLINFO_CONTENT_TYPE);
        
        if(
$code != 200 || substr($type06) != 'image/' || $img == FALSE || strlen($img) < 100) {
            
// Negatywne cache'owanie
            
touch('./'.$dir.'/'.$ISBN);
            return 
FALSE;
        }
        else
        {
            
file_put_contents('./'.$dir.'/'.$ISBN$img);
            return 
TRUE;
        }
    }
}
?>

Browse Code © 2010 by Jacek Kowalski