
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)<=8 && 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($ISBN, 0, 3)=='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)==0 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($curl, CURLOPT_FOLLOWLOCATION, TRUE); curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); $img = @curl_exec($curl); $code = curl_getinfo($curl, CURLINFO_HTTP_CODE); $type = curl_getinfo($curl, CURLINFO_CONTENT_TYPE); if($code != 200 || substr($type, 0, 6) != '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