amazon



function wpr_aws_request($region, $params, $public_key, $private_key) {
libxml_use_internal_errors(true);
$method = "GET";
$host = "webservices.amazon.".$region;
//$host = "ecs.amazonaws.".$region;
$uri = "/onca/xml";

$params["Service"] = "AWSECommerceService";
$params["AWSAccessKeyId"] = $public_key;

$t = time() + 10000;
$params["Timestamp"] = gmdate("Y-m-d\TH:i:s\Z",$t);
$params["Version"] = "2011-08-01";
ksort($params);

$canonicalized_query = array();
foreach ($params as $param=>$value) {
$param = str_replace("%7E", "~", rawurlencode($param));
$value = str_replace("%7E", "~", rawurlencode($value));
$canonicalized_query[] = $param."=".$value;
}
$canonicalized_query = implode("&", $canonicalized_query);
$string_to_sign = $method."\n".$host."\n".$uri."\n".$canonicalized_query;
$signature = base64_encode(hash_hmac("sha256", $string_to_sign, $private_key, True));
$signature = str_replace("%7E", "~", rawurlencode($signature));
$request = "http://".$host.$uri."?".$canonicalized_query."&Signature=".$signature;

if ( function_exists('curl_init') ) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; Konqueror/4.0; Microsoft Windows) KHTML/4.0.80 (like Gecko)");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $request);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
$response = curl_exec($ch);
if (!$response) {
$return["error"]["module"] = "Amazon";
$return["error"]["reason"] = "cURL Error";
$return["error"]["message"] = __("cURL Error Number ","wprobot").curl_errno($ch).": ".curl_error($ch);
return $return;
}
curl_close($ch);
} else {
$response = @file_get_contents($request);
if (!$response) {
$return["error"]["module"] = "Amazon";
$return["error"]["reason"] = "cURL Error";
$return["error"]["message"] = __("cURL is not installed on this server!","wprobot");
return $return;
}
}

$pxml = simplexml_load_string($response);
if ($pxml === False) {
$emessage = __("Failed loading XML, errors returned: ","wprobot");
foreach(libxml_get_errors() as $error) {
$emessage .= $error->message . ", ";
}
libxml_clear_errors();
$return["error"]["module"] = "Amazon";
$return["error"]["reason"] = "XML Error";
$return["error"]["message"] = $emessage;
return $return;
} else {
return $pxml;
}
}

function wpr_star_rating($rating) {

//$imagepath = get_option('siteurl').'/wp-content/plugins/WPRobot3/images/';
$imagepath = WP_PLUGIN_URL.'/'.str_replace(basename( __FILE__),"",plugin_basename(__FILE__));
$imagepath = str_replace("/modules/","/images/",$imagepath);

if($rating>=0 && $rating <= 0.7) {
$image = '';
}
if($rating>=1.3 && $rating <= 1.7) {
$image = '';
}
if($rating>=2.3 && $rating <= 2.7) {
$image = '';
}
if($rating>=3.3 && $rating <= 3.7) {
$image = '';
}
if($rating>=4.3 && $rating <= 4.7) {
$image = '';
}
if($rating>=0.8 && $rating <= 1.2) {
$image = '';
}
if($rating>=1.8 && $rating <= 2.2) {
$image = '';
}
if($rating>=2.8 && $rating <= 3.2) {
$image = '';
}
if($rating>=3.8 && $rating <= 4.2) {
$image = '';
}
if($rating>=4.8 && $rating <= 5) {
$image = '';
}

return $image;
}

function wpr_amazonpost($keywords,$count,$start,$optional,$comments="") {
global $wpdb,$wpr_table_templates;

$searchindex = $optional[0];
$browsenode = $optional[1];
if($searchindex == "") {$searchindex = "All";}

if($keywords == "" && $browsenode == "") {
$return["error"]["module"] = "Amazon";
$return["error"]["reason"] = "No keyword";
$return["error"]["message"] = __("No keyword or BrowseNode specified.","wprobot");
return $return;
}

$start2 = $start / 10;
$start2 = (string) $start2;
$start2 = explode(".", $start2);
$page=(int)$start2[0];
$page++;
$cnum=(int)$start2[1];

$template = $wpdb->get_var("SELECT content FROM " . $wpr_table_templates . " WHERE type = 'amazon'");
if($template == false || empty($template)) {
$return["error"]["module"] = "Amazon";
$return["error"]["reason"] = "No template";
$return["error"]["message"] = __("Module Template does not exist or could not be loaded.","wprobot");
return $return;
}

$imagepath = WP_PLUGIN_URL.'/'.str_replace(basename( __FILE__),"",plugin_basename(__FILE__));
$imagepath = str_replace("/modules/","/images/",$imagepath);
$options = unserialize(get_option("wpr_options"));
$public_key = $options['wpr_aa_apikey'];
$private_key = $options['wpr_aa_secretkey'];
$affid = $options['wpr_aa_affkey'];
$added_post = 0;

$return = array();
$site = $options['wpr_aa_site'];
if($site == "us") {$site = "com";}
if($site == "uk") {$site = "co.uk";}

if($browsenode == "") {$browsenode = 0;}

while($added_post < $count) {
if($searchindex == "All") {
$pxml = wpr_aws_request($site, array(
"Operation"=>"ItemSearch",
"AssociateTag"=>$affid,
"Keywords"=>$keywords,
"SearchIndex"=>$searchindex,
"MerchantId"=>"All",
"ItemPage"=>$page,
"ReviewSort"=>"-HelpfulVotes",
"TruncateReviewsAt"=>"5000",
"IncludeReviewsSummary"=>"False",
"ResponseGroup"=>"Large"
), $public_key, $private_key);
} elseif($browsenode != 0) {
$pxml = wpr_aws_request($site, array(
"Operation"=>"ItemSearch",
"AssociateTag"=>$affid,
"SearchIndex"=>$searchindex,
"Keywords"=>$keywords,
"BrowseNode"=>$browsenode,
"MerchantId"=>"All",
"ItemPage"=>$page,
"ReviewSort"=>"-HelpfulVotes",
"TruncateReviewsAt"=>"5000",
"IncludeReviewsSummary"=>"False",
"ResponseGroup"=>"Large"
), $public_key, $private_key);
} else {
$pxml = wpr_aws_request($site, array(
"Operation"=>"ItemSearch",
"AssociateTag"=>$affid,
"Keywords"=>$keywords,
"SearchIndex"=>$searchindex,
"MerchantId"=>"All",
"ItemPage"=>$page,
"ReviewSort"=>"-HelpfulVotes",
"TruncateReviewsAt"=>"5000",
"IncludeReviewsSummary"=>"False",
"ResponseGroup"=>"Large"
), $public_key, $private_key);
}
if(!empty($pxml["error"])) {return $pxml;}
//echo "
";print_r($pxml);echo "
";

if($count<=10){
$count_this = $count;
} else{
$count_this = 10;
}
$rr=0;
$yy=1;

if (!$pxml) {
$return["error"]["module"] = "Amazon";
$return["error"]["reason"] = "Request fail";
$return["error"]["message"] = __("API request could not be sent.","wprobot");
return $return;
}

if (isset($pxml->Error)) {
$message = '

'.__("There was a problem with your Amazon API request. This is the error Amazon returned:","wprobot").'


'.$pxml->Error->Code.': '.$pxml->Error->Message.'

';
$return["error"]["module"] = "Amazon";
$return["error"]["reason"] = "API fail";
$return["error"]["message"] = $message;
return $return;
}

if (isset($pxml->Items->Request->Errors->Error->Code)) {
$message = '

'.__("There was a problem with your Amazon API request. This is the error Amazon returned:","wprobot").'


'.$pxml->Items->Request->Errors->Error->Code.': '.$pxml->Items->Request->Errors->Error->Message.'

';
$return["error"]["module"] = "Amazon";
$return["error"]["reason"] = "API fail";
$return["error"]["message"] = $message;
return $return;
}

if (!$pxml->Items->Item) {
$return["error"]["module"] = "Amazon";
$return["error"]["reason"] = "No content";
$return["error"]["message"] = __("No (more) products found for this keyword.","wprobot");
return $return;
}

foreach($pxml->Items->Item as $item) {
if($yy >= $cnum) {

$skipit = 0;
$skip = $options["wpr_aa_skip"];
if($skip == "noimg" || $skip == "nox") {if(empty($item->MediumImage->URL) && empty($item->SmallImage->URL)) {$skipit = 1;}}
if($skip == "nodesc" || $skip == "nox") {if(empty($item->EditorialReviews->EditorialReview->Content)) {$skipit = 1;}}
/*
if($skipit == 1 && $count == 1) {
$return["error"]["module"] = "Amazon";
$return["error"]["reason"] = "No content";
$return["error"]["message"] = __("Product skipped because no image and/or description was found.","wprobot");
return $return;
}*/

if ($rr<$count_this && $skipit == 0) {
$desc = "";
if (isset($item->EditorialReviews->EditorialReview)) {
foreach($item->EditorialReviews->EditorialReview as $descs) {
$desc .= $descs->Content;
}
}

$elength = ($options['wpr_aa_excerptlength']);
if ($elength != 'full') {
$desc = strip_tags($desc,'
');
$desc = substr($desc, 0, $elength);
}

$features = "";
if (isset($item->ItemAttributes->Feature)) {
$features = "";
}

$timg = $item->MediumImage->URL;
if($timg == "") {$timg = $item->LargeImage->URL;}
$thumbnail = ''.$item->ItemAttributes->Title.'';
$link = ''.$item->ItemAttributes->Title.'';

// REVIEWS - Replace for Nov 11 API Change

$product_review = $item->CustomerReviews->IFrameURL;
$reviewsiframe = '';
$revcontent = file_get_contents($product_review);
if (preg_match('~]*>(.*?)~si', $revcontent, $body)) { $reviewsnoiframe = str_replace('class="crVotingButtons">', "", $body[1]); } else {$reviewsnoiframe = "";}


$price = str_replace("$", "$ ", $item->OfferSummary->LowestNewPrice->FormattedPrice);

$listprice = str_replace("$", "$ ", $item->ItemAttributes->ListPrice->FormattedPrice);

if($price == "Too low to display" || $price == "Price too low to display") {
$price = $listprice;
}
if(empty($listprice) && !empty($price)) {$listprice = $price;}
if(empty($price) && !empty($listprice)) {$price = $listprice;}

$content = $template;

preg_match('#\[has_reviews\](.*)\[/has_reviews\]#smiU', $template, $check);
if ($check[0] != false) {
if(empty($item->CustomerReviews->TotalReviews)) {
$content = str_replace($check[0], "", $content);
}
}
$content = str_replace(array("[has_reviews]","[/has_reviews]"), "", $content);
preg_match('#\[has_listprice\](.*)\[/has_listprice\]#smiU', $template, $matches);//print_r($matches);
if ($matches[0] != false) {
if(empty($listprice)) {
$content = str_replace($matches[0], "", $content);
}
}
$content = str_replace(array("[has_listprice]","[/has_listprice]"), "", $content);

$asin = $item->ASIN;
$content = wpr_random_tags($content);
$content = str_replace("{title}", $item->ItemAttributes->Title, $content);
$content = str_replace("{description}", $desc, $content);
$content = str_replace("{features}", $features, $content);
$content = str_replace("{thumbnail}", $thumbnail, $content);
$content = str_replace("{smallimage}", $item->SmallImage->URL, $content);
$content = str_replace("{mediumimage}", $item->MediumImage->URL, $content);
$content = str_replace("{largeimage}", $item->LargeImage->URL, $content);
$content = str_replace("{buynow}", '', $content);
$content = str_replace("{buynow-big}", '', $content);
$content = str_replace("{buynow-ger}", '', $content);
$content = str_replace("{price}", $price, $content);
$content = str_replace("{listprice}", $listprice, $content);
$savings = str_replace("$ ", "", $listprice) - str_replace("$ ", "", $price);
$content = str_replace("{savings}", $savings, $content);
$content = str_replace("{url}", $item->DetailPageURL, $content);
$content = str_replace("{avgrating}", $item->CustomerReviews->AverageRating, $content);
$content = str_replace("{reviewsnum}", $item->CustomerReviews->TotalReviews, $content);
$noqkeyword = str_replace('"', '', $keywords);
$content = str_replace("{keyword}", $noqkeyword, $content);
$content = str_replace("{Keyword}", ucwords($noqkeyword), $content);
$content = str_replace("{link}", $link, $content);
$content = str_replace("{asin}", $asin, $content);
$content = str_replace("{price-updating}", '[wpramaprice asin="'.$asin.'"]', $content);

// rating
if (strpos($content, "{rating}") != false) {
$image = wpr_star_rating($item->CustomerReviews->AverageRating);
$content = str_replace("{rating}",$image,$content);
}

// reviews
$content = str_replace("{reviews-url}", $product_review, $content);
//$content = str_replace("{reviews-iframe}", $reviewsiframe, $content);
$content = str_replace("{reviews-iframe}", '[wpramareviews asin="'.$asin.'"]', $content);
$content = str_replace("{reviews-noiframe}", $reviewsnoiframe, $content);
preg_match('#\{reviews(.*)\}#iU', $content, $rmatches);
if ($rmatches[0] == false) {
} else {
$content = str_replace($rmatches[0], '[wpramareviews asin="'.$asin.'"]', $content);
}

// split reviews into comments
$dom = new DOMDocument();
@$dom->loadHTML($reviewsnoiframe);

$xpath = new DOMXPath($dom);
$paras = $xpath->query("//table[@class='crIFrameReviewList']//tr/td/div");

$reviews = array();
for ($y = 0; $y < $paras->length; $y++ ) { //$paras->length
$para = $paras->item($y);

$review = $dom->saveXml($para);
//$review = str_replace('', "", $review);
//$review = str_replace('', "", $review);
$review = str_replace('Permalink', "", $review);
$review = str_replace('Report abuse', "", $review);
$review = str_replace('See all my reviews', "", $review);
$review = preg_replace('/\s+/', ' ', $review);
$review = str_replace('(REAL NAME)', "", $review);
//$review = preg_replace('#
(.*)
#smiU', '
', $review);
$reviews[$y]["content"] = $review;
}

$xpath = new DOMXPath($dom);
$paras = $xpath->query("//table[@class='crIFrameReviewList']//tr/td/div/div[3]/div/div/a/span");
for ($y = 0; $y < $paras->length; $y++ ) { //$paras->length
$para = $paras->item($y);
$author = $para->textContent; // $dom->saveXml($para);

$reviews[$y]["author"] = $author;
}

//print_r($reviews);

if(function_exists("wpr_translate_partial")) {
$content = wpr_translate_partial($content);
}
if(function_exists("wpr_rewrite_partial")) {
$content = wpr_rewrite_partial($content,$options);
}

if(!empty($item->MediumImage->URL)) {$largestimage = $item->MediumImage->URL;}
elseif(!empty($item->SmallImage->URL)) {$largestimage = $item->SmallImage->URL;}
elseif(!empty($item->LargeImage->URL)) {$largestimage = $item->LargeImage->URL;}

$customfield = array();
$customfield["amazontitle"] = $item->ItemAttributes->Title;
$customfield["amazonthumbnail"] = $largestimage;
$customfield["amazonthumbnaillarge"] = $item->LargeImage->URL;
$customfield["amazonprice"] = $price;
$customfield["amazonlistprice"] = $listprice;
$customfield["amazonsaving"] = $savings;
$customfield["amazonlink"] = $item->DetailPageURL;
$customfield["amazonasin"] = $asin;
$customfield["asin"] = $asin;
$customfield["amazonrating"] = $item->CustomerReviews->AverageRating;

$single = array();
$single["unique"] = $asin;
$single["title"] = $item->ItemAttributes->Title;
if($options['wpr_aa_shortcode'] == "Yes") {
$single["content"] = '[wpramazon asin="'.$asin.'"]';
} else {
$single["content"] = $content;
}
$single["comments"] = $reviews;
$single["customfield"] = $customfield;
$added_post = $added_post + 1;
array_push($return, $single);
$rr++;
}
}
$yy++;
}
$page++;$cnum=0;
}
return $return;
}

function wpr_amazon_getlist($keywords,$count) {
global $wpdb,$wpr_table_templates;

$searchindex = "All";
$maxitems = $count;
$itemcount = 0;

if($keywords == "") {
$return["error"]["module"] = "Amazon";
$return["error"]["reason"] = "No keyword";
$return["error"]["message"] = __("No keyword specified.","wprobot");
return $return;
}

$start = rand(1, 17);
$start2 = $start / 10;
$start2 = (string) $start2;
$start2 = explode(".", $start2);
$page=(int)$start2[0];
$page++;
$cnum=(int)$start2[1];

//$imagepath = get_option('siteurl').'/wp-content/plugins/WPRobot3/images/';
$imagepath = WP_PLUGIN_URL.'/'.str_replace(basename( __FILE__),"",plugin_basename(__FILE__));
$imagepath = str_replace("/modules/","/images/",$imagepath);
$options = unserialize(get_option("wpr_options"));
$public_key = $options['wpr_aa_apikey'];
$private_key = $options['wpr_aa_secretkey'];
$affid = $options['wpr_aa_affkey'];
$added_post = 0;

$return = array();
$ads = "";
$site = $options['wpr_aa_site'];
if($site == "us") {$site = "com";}
if($site == "uk") {$site = "co.uk";}

if($browsenode == "") {$browsenode = 0;}

while($added_post < $count) {

$pxml = wpr_aws_request($site, array(
"Operation"=>"ItemSearch",
"AssociateTag"=>$affid,
"SearchIndex"=>"All",
"Keywords"=>$keywords,
"ItemPage"=>$page,
"ReviewSort"=>"-HelpfulVotes",
"ResponseGroup"=>"Large"
), $public_key, $private_key);
if(!empty($pxml["error"])) {return $pxml;}
//echo "
";print_r($pxml);echo "
";

if($count<=10){
$count_this = $count;
} else{
$count_this = 10;
}
$i=0;
$yy=0;

if (!$pxml) {
$return["error"]["module"] = "Amazon";
$return["error"]["reason"] = "Request fail";
$return["error"]["message"] = __("API request could not be sent.","wprobot");
return $return;
}

if (isset($pxml->Error)) {
$message = '

'.__("There was a problem with your Amazon API request. This is the error Amazon returned:","wprobot").'


'.$pxml->Error->Code.': '.$pxml->Error->Message.'

';
$return["error"]["module"] = "Amazon";
$return["error"]["reason"] = "API fail";
$return["error"]["message"] = $message;
return $return;
}

if (isset($pxml->Items->Request->Errors->Error->Code)) {
$message = '

'.__("There was a problem with your Amazon API request. This is the error Amazon returned:","wprobot").'


'.$pxml->Items->Request->Errors->Error->Code.': '.$pxml->Items->Request->Errors->Error->Message.'

';
$return["error"]["module"] = "Amazon";
$return["error"]["reason"] = "API fail";
$return["error"]["message"] = $message;
return $return;
}

if (!$pxml->Items->Item) {
$return["error"]["module"] = "Amazon";
$return["error"]["reason"] = "No content";
$return["error"]["message"] = __("No (more) products found for this keyword.","wprobot");
return $return;
}

foreach($pxml->Items->Item as $item) {
if($yy >= $cnum) {

$skipit = 0;
$skip = $options["wpr_aa_skip"];
if($skip == "noimg" || $skip == "nox") {if($item->MediumImage->URL == "" && $item->SmallImage->URL) {$skipit = 1;}}
if($skip == "nodesc" || $skip == "nox") {if($item->EditorialReviews->EditorialReview->Content == "") {$skipit = 1;}}

if ($i<$count_this && $skipit == 0) {

$dcontent = "";
if (isset($item->EditorialReviews->EditorialReview)) {
foreach($item->EditorialReviews->EditorialReview as $descs) {
$dcontent .= $descs->Content;
}

$dcontent = strip_tags($dcontent);
$dcontent = substr($dcontent, 0, 130);
$dcontent .= '... ';
}

$timg = $item->LargeImage->URL;
$thumbnail = '';
$link = ''.$item->ItemAttributes->Title.'';

if($maxitems >= $itemcount) {
$ads .= '
'.$thumbnail.$link.'
'.$dcontent.'
';
$itemcount++;
}

$added_post++;
$i++;
}
}
$yy++;
}
$page++;$cnum=0;
}
return $ads;
}

function wpr_amazon_options_default() {
$options = array(
"wpr_aa_affkey" => "",
"wpr_aa_apikey" => "",
"wpr_aa_secretkey" => "",
"wpr_aa_skip" => "",
"wpr_aa_revtemplate" => "Review by {author} for {link} Rating: {rating} {content} ",
"wpr_aa_excerptlength" => "500",
"wpr_aa_site" => "us",
"wpr_aa_shortcode" => "No"
);
return $options;
}

function wpr_amazon_options($options) {
?>



valign="top">



valign="top">



valign="top">






















?

?
Click to get to the Amazon API sign up page!',"wprobot") ?>


?
Click to get to the Amazon API sign up page!',"wprobot") ?>








/>
?

}

function wpr_aws_getnodename($nodeid) {

$options = unserialize(get_option("wpr_options"));
$public_key = $options['wpr_aa_apikey'];
$affid = $options['wpr_aa_affkey'];
$private_key = $options['wpr_aa_secretkey'];
$locale = $options['wpr_aa_site'];
if($locale == "us") {$locale = "com";}
if($locale == "uk") {$locale = "co.uk";}
$pxml = wpr_aws_request($locale, array(
"Operation"=>"BrowseNodeLookup",
"BrowseNodeId"=>$nodeid,
"AssociateTag"=>$affid,
"ResponseGroup"=>"BrowseNodeInfo"
), $public_key, $private_key);
//echo "
";print_r($pxml);echo "
";
if ($pxml === False) {
return false;
} else {
if($pxml->BrowseNodes->BrowseNode->Name) {
return $pxml->BrowseNodes->BrowseNode->Name;
} elseif($pxml->BrowseNodes->Request->Errors->Error->Message) {
$return["message"] = $pxml->BrowseNodes->Request->Errors->Error->Message;
return $return;
} else {
return false;
}
}
}

function wpr_ama_price($atts, $content = null) {

$options = unserialize(get_option("wpr_options"));
$public_key = $options['wpr_aa_apikey'];
$private_key = $options['wpr_aa_secretkey'];
$affid = $options['wpr_aa_affkey'];
$locale = $options['wpr_aa_site'];
if($locale == "us") {$locale = "com";}
if($locale == "uk") {$locale = "co.uk";}
$pxml = wpr_aws_request($locale, array(
"Operation"=>"ItemLookup",
"ItemId"=>$atts["asin"],
"AssociateTag"=>$affid,
//"IncludeReviewsSummary"=>"False",
//"TruncateReviewsAt"=>"9216",
"ResponseGroup"=>"OfferSummary"
), $public_key, $private_key);
//echo "
";print_r($pxml);echo "
";
if ($pxml === False) {
return false;
} else {
if($pxml->Items->Item->OfferSummary->LowestNewPrice->FormattedPrice) {
$price = str_replace("$", "$ ", $pxml->Items->Item->OfferSummary->LowestNewPrice->FormattedPrice);
if($price == "Too low to display" || $price == "Price too low to display") {
$price = str_replace("$", "$ ", $item->ItemAttributes->ListPrice->FormattedPrice);
}
return $price;
} else {
return $content;
}
}
}
add_shortcode('wpramaprice', 'wpr_ama_price' );

function wpr_ama_reviews($atts, $content = null) {

$options = unserialize(get_option("wpr_options"));
$public_key = $options['wpr_aa_apikey'];
$private_key = $options['wpr_aa_secretkey'];
$locale = $options['wpr_aa_site'];
$affid = $options['wpr_aa_affkey'];
if($locale == "us") {$locale = "com";}
if($locale == "uk") {$locale = "co.uk";}
$pxml = wpr_aws_request($locale, array(
"Operation"=>"ItemLookup",
"ItemId"=>$atts["asin"],
"IncludeReviewsSummary"=>"False",
"AssociateTag"=>$affid,
"TruncateReviewsAt"=>"5000",
"ResponseGroup"=>"Reviews"
), $public_key, $private_key);
//echo "
";print_r($pxml);echo "
";
if ($pxml === False) {
return false;
} else {
if($pxml->Items->Item->CustomerReviews->IFrameURL) {

$product_review = $pxml->Items->Item->CustomerReviews->IFrameURL;
$reviewsiframe = '';

return $reviewsiframe;
} else {
return $content;
}
}
}
add_shortcode('wpramareviews', 'wpr_ama_reviews' );

function wpr_ama_handler($atts, $content = null) {
global $wpdb,$wpr_table_templates;

$template = $wpdb->get_var("SELECT content FROM " . $wpr_table_templates . " WHERE type = 'amazon'");

$imagepath = WP_PLUGIN_URL.'/'.str_replace(basename( __FILE__),"",plugin_basename(__FILE__));
$imagepath = str_replace("/modules/","/images/",$imagepath);
$options = unserialize(get_option("wpr_options"));
$public_key = $options['wpr_aa_apikey'];
$private_key = $options['wpr_aa_secretkey'];
$locale = $options['wpr_aa_site'];
$affid = $options['wpr_aa_affkey'];
if($locale == "us") {$locale = "com";}
if($locale == "uk") {$locale = "co.uk";}
$pxml = wpr_aws_request($locale, array(
"Operation"=>"ItemLookup",
"ItemId"=>$atts["asin"],
"IncludeReviewsSummary"=>"False",
"AssociateTag"=>$affid,
"TruncateReviewsAt"=>"5000",
"ResponseGroup"=>"Large"
), $public_key, $private_key);
//echo "
";print_r($pxml);echo "
";
if ($pxml === False) {
return false;
} else {
if($pxml->Items->Item->CustomerReviews->IFrameURL) {
foreach($pxml->Items->Item as $item) {

$desc = "";
if (isset($item->EditorialReviews->EditorialReview)) {
foreach($item->EditorialReviews->EditorialReview as $descs) {
$desc .= $descs->Content;
}
}

$elength = ($options['wpr_aa_excerptlength']);
if ($elength != 'full') {
$desc = strip_tags($desc,'
');
$desc = substr($desc, 0, $elength);
}

$features = "";
if (isset($item->ItemAttributes->Feature)) {
$features = "
    ";
    foreach($item->ItemAttributes->Feature as $feature) {
    $posx = strpos($feature, "href=");
    if ($posx === false) {
    $features .= "
  • ".$feature."
  • ";
    }
    }
    $features .= "
";
}

$timg = $item->MediumImage->URL;
if($timg == "") {$timg = $item->LargeImage->URL;}
$thumbnail = '';
$link = ''.$item->ItemAttributes->Title.'';

$product_review = $item->CustomerReviews->IFrameURL;
$reviewsiframe = '';
$revcontent = file_get_contents($product_review);
if (preg_match('~]*>(.*?)~si', $revcontent, $body)) { $reviewsnoiframe = str_replace('class="crVotingButtons">', "", $body[1]); } else {$reviewsnoiframe = "";}


$price = str_replace("$", "$ ", $item->OfferSummary->LowestNewPrice->FormattedPrice);
$listprice = str_replace("$", "$ ", $item->ItemAttributes->ListPrice->FormattedPrice);

if($price == "Too low to display" || $price == "Price too low to display") {
$price = $listprice;
}

$acontent = $template;

preg_match('#\[has_reviews\](.*)\[/has_reviews\]#smiU', $template, $check);
if ($check[0] != false) {
if(empty($item->CustomerReviews->TotalReviews)) {
$acontent = str_replace($check[0], "", $acontent);
}
}
$acontent = str_replace(array("[has_reviews]","[/has_reviews]"), "", $acontent);
preg_match('#\[has_listprice\](.*)\[/has_listprice\]#smiU', $template, $matches);//print_r($matches);
if ($matches[0] != false) {
if(empty($listprice)) {
$acontent = str_replace($matches[0], "", $acontent);
}
}
$acontent = str_replace(array("[has_listprice]","[/has_listprice]"), "", $acontent);

$asin = $item->ASIN;
$acontent = wpr_random_tags($acontent);
$acontent = str_replace("{title}", $item->ItemAttributes->Title, $acontent);
$acontent = str_replace("{description}", $desc, $acontent);
$acontent = str_replace("{features}", $features, $acontent);
$acontent = str_replace("{thumbnail}", $thumbnail, $acontent);
$acontent = str_replace("{smallimage}", $item->SmallImage->URL, $acontent);
$acontent = str_replace("{mediumimage}", $item->MediumImage->URL, $acontent);
$acontent = str_replace("{largeimage}", $item->LargeImage->URL, $acontent);
$acontent = str_replace("{buynow}", '', $acontent);
$acontent = str_replace("{buynow-big}", '', $acontent);
$acontent = str_replace("{buynow-ger}", '', $acontent);
$acontent = str_replace("{price}", $price, $acontent);
$acontent = str_replace("{listprice}", $listprice, $acontent);
$savings = str_replace("$ ", "", $listprice) - str_replace("$ ", "", $price);
$acontent = str_replace("{savings}", $savings, $acontent);
$acontent = str_replace("{url}", $item->DetailPageURL, $acontent);
$acontent = str_replace("{avgrating}", $item->CustomerReviews->AverageRating, $acontent);
$acontent = str_replace("{reviewsnum}", $item->CustomerReviews->TotalReviews, $acontent);
$noqkeyword = str_replace('"', '', $keywords);
$acontent = str_replace("{keyword}", $noqkeyword, $acontent);
$acontent = str_replace("{Keyword}", ucwords($noqkeyword), $acontent);
$acontent = str_replace("{link}", $link, $acontent);
$acontent = str_replace("{asin}", $asin, $acontent);
$acontent = str_replace("{price-updating}", $price, $acontent);

// rating
if (strpos($acontent, "{rating}") != false) {
$image = wpr_star_rating($item->CustomerReviews->AverageRating);
$acontent = str_replace("{rating}",$image,$acontent);
}

// reviews
$acontent = str_replace("{reviews-url}", $product_review, $acontent);
$acontent = str_replace("{reviews-iframe}", $reviewsiframe, $acontent);
$acontent = str_replace("{reviews-noiframe}", $reviewsnoiframe, $acontent);
preg_match('#\{reviews(.*)\}#iU', $acontent, $rmatches);
if ($rmatches[0] == false) {
} else {
$acontent = str_replace($rmatches[0], $reviewsiframe, $acontent);
}
}

return $acontent;
} else {
return $content;
}
}
}
add_shortcode('wpramazon', 'wpr_ama_handler' );

?>

Wyszukiwarka

Podobne podstrony:
Jagoda Acai dar natury z Amazonii
Amazon Stealth
Amazons Greek Mythology
Deszczowy las Amazonii
Jak kupowac muzyke na Amazon co uk
Amazon Search Dominator Delux Training And Rolodex
Amazonka

więcej podobnych podstron