# Amazon Artikel in rechter Spalte einbinden
global $ASIN,$basepath;
if ($basepath == "") { include "../../_config/config.php"; }
# Config:
$cache = 1;
#$cache_time = 900;
$cache_time = 0; # Cache forever ...
$cachetimepic = 50400; # Cache for 14 Days ...
$cache_path = $basepath."tn-engine/cache/";
require_once "SOAP/Client.php";
# Functions
function get_aws_asin($ASIN1) {
$wsdl_url = "http://soap-eu.amazon.com/schemas3/AmazonWebServices.wsdl";
$WSDL = new SOAP_WSDL($wsdl_url);
$client = $WSDL->getProxy();
$params = array (
'asin' => $ASIN1,
'mode' => 'books-de',
'type' => 'lite',
'locale' => 'de',
'tag' => 'trinlernet-21',
'devtag' => 'D1UMIDCDJ56SN0'
);
$results = $client->AsinSearchRequest($params);
if ($results->faultstring)
{
?>
Fehler:
echo $results->faultstring;?>
} else {
foreach ($results->Details as $result) {
$returnresult = $result;
}
}
return $returnresult;
}
function save_cache_info($purl,$title,$ASIN1,$author,$verlag,$date) {
global $cache_path;
$cache_info = $purl.";;".urlencode($title).";;".urlencode($author).";;".urlencode($verlag).";;".urlencode($date);
$cache_file = $cache_path.$ASIN1;
$fpwrite = @fopen($cache_file, 'w');
if(!$fpwrite) {
echo "$errstr ($errno)
\n";
exit;
} else {
fputs($fpwrite,$cache_info);
}
@fclose($fpwrite);
}
function get_cache_info($ASIN1) {
global $cache_path;
$cache_file = $cache_path.$ASIN1;
$fpread = @fopen($cache_file, 'r');
if(!$fpread) {
echo "$errstr ($errno)
\n";
exit;
} else {
while(! feof($fpread) ) {
$buffer = @ltrim(Chop(fgets($fpread, 256)));
}
@fclose($fpread);
list($returnresult->ImageUrlMedium,$returnresult->ProductName,$returnresult->Authors,$returnresult->Manufacturer,$returnresult->ReleaseDate) = explode(";;",$buffer);
$returnresult->ProductName = urldecode($returnresult->ProductName);
$returnresult->Authors = urldecode($returnresult->Authors);
$returnresult->Manufacturer = urldecode($returnresult->Manufacturer);
$returnresult->ReleaseDate = urldecode($returnresult->ReleaseDate);
}
return $returnresult;
}
# Main
if ($ASIN) {
#print $ASIN;
if (strpos($ASIN,";")) {
$ASINS = explode(";", $ASIN);
$ASIN1 = $ASINS[array_rand($ASINS)];
} else { $ASIN1 = $ASIN; }
$cache_file = $cache_path.$ASIN1;
if ($cache) {
if (($cache_time == 0) && (file_exists($cache_file))) { $usecache = TRUE;
} else {
$time = split(" ", microtime());
if ( (file_exists($cache_file)) && ((filectime($cache_file) + $cache_time - $time[1]) > 0) ) {
$usecache = TRUE;
} else {
$usecache = FALSE;
}
}
}
if (!$usecache) {
# echo "aws";
$result = get_aws_asin($ASIN1);
# print_r($result);
$title = $result->ProductName;
$price = $result->OurPrice;
$author = implode(", ", $result->Authors);
$verlag = $result->Manufacturer;
$date = $result->ReleaseDate;
# $url = $result->Url;
$url = "/extern/a$ASIN1.html";
$purl = $result->ImageUrlMedium;
save_cache_info($purl,$title,$ASIN1,$author,$verlag,$date);
} else {
# echo "cache";
$result = get_cache_info($ASIN1);
$title = $result->ProductName;
$url = "/extern/a$ASIN1.html";
$author = $result->Authors;
$verlag = $result->Manufacturer;
$date = $result->ReleaseDate;
$purl = $result->ImageUrlMedium;
}
if ($author == "") { $author = "Unbekannt"; }
$fext = substr($purl, -3);
$lpurl = "/images/ISBN/$ASIN1.$fext";
echo "";
echo "
";
echo "$title
";
}
if ($asinpic) {
if (!file_exists($cache_path.$asinpic)) {
$result = get_aws_asin($asinpic);
$title = utf8_decode($result->ProductName);
$price = utf8_decode($result->OurPrice);
$author = utf8_decode(implode(", ", $result->Authors));
$verlag = utf8_decode($result->Manufacturer);
$date = utf8_decode($result->ReleaseDate);
$purl = $result->ImageUrlMedium;
save_cache_info($purl,$title,$ASIN1,$author,$verlag,$date);
$info = 1;
}
$cache_file = $cache_path.$asinpic.".picture";
if ($cache) {
if (($cachetimepic == 0) && (file_exists($cache_file))) { $usecache = TRUE;
} else {
$time = split(" ", microtime());
if ( (file_exists($cache_file)) && ((filectime($cache_file) + $cachetimepic - $time[1]) > 0) ) {
$usecache = TRUE;
} else {
$usecache = FALSE;
}
}
}
if (!$info) {
$result = get_cache_info($asinpic);
}
$purl = $result->ImageUrlMedium;
$furl = $cache_file;
$fext = substr($purl, -3);
switch (strtoupper($fext)) {
case "JPG": $ctype = "image/jpeg";
break;
case "GIF": $ctype = "image/gif";
break;
default: $ctype = "image/jpeg";
}
header("Content-Type: $ctype");
header("Content-Disposition: filename=\"$asinpic.$fext\"");
if (!$usecache) {
if ($fp = fopen("$purl","r")) {
while(!feof($fp)){
$pdata .= fgets($fp,4096);
}
fclose($fp);
if ($fpwrite=fopen("$cache_file", "w")) {
fputs($fpwrite,$pdata);
fclose($fpwrite);
} else { print "Fehler beim öffnen von $purl"; }
print $pdata;
}
} else {
if ($fp=fopen("$cache_file", "r")) {
fpassthru($fp);
fclose($fp);
}
}
}
?>