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