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 "<pre>";print_r($pxml);echo "</pre>"; 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, '<br>'); $desc = substr($desc, 0, $elength); } $features = ""; if (isset($item->ItemAttributes->Feature)) { $features = "<ul>"; foreach ($item->ItemAttributes->Feature as $feature) { $posx = strpos($feature, "href="); if ($posx === false) { $features .= "<li>" . $feature . "</li>"; } } $features .= "</ul>"; } $timg = $item->MediumImage->URL; if ($timg == "") { $timg = $item->SmallImage->URL; } $thumbnail = '<a href="' . $item->DetailPageURL . '" rel="nofollow"><img style="float:left;margin: 0 20px 10px 0;" src="' . $timg . '" /></a>'; $link = '<a href="' . $item->DetailPageURL . '" rel="nofollow">' . $item->ItemAttributes->Title . '</a>'; $product_review = $item->CustomerReviews->IFrameURL; $reviewsiframe = '<iframe style="margin-top: 10px;" src="' . $product_review . '" width="100%" height="450px"><p>Your browser does not support iframes.</p></iframe>'; $revcontent = file_get_contents($product_review); if (preg_match('~<body[^>]*>(.*?)</body>~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}", '<a href="' . $item->DetailPageURL . '" rel="nofollow"><img src="' . $imagepath . 'buynow-small.gif" /></a>', $acontent); $acontent = str_replace("{buynow-big}", '<a href="' . $item->DetailPageURL . '" rel="nofollow"><img src="' . $imagepath . 'buynow-big.gif" /></a>', $acontent); $acontent = str_replace("{buynow-ger}", '<a href="' . $item->DetailPageURL . '" rel="nofollow"><img src="' . $imagepath . 'buynow-ger.gif" /></a>', $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; } } }
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 "<pre>";print_r($pxml);echo "</pre>"; 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 = '<p>'.__("There was a problem with your Amazon API request. This is the error Amazon returned:","wprobot").'</p> <p><i><b>'.$pxml->Error->Code.':</b> '.$pxml->Error->Message.'</i></p>'; $return["error"]["module"] = "Amazon"; $return["error"]["reason"] = "API fail"; $return["error"]["message"] = $message; return $return; } if (isset($pxml->Items->Request->Errors->Error->Code)) { $message = '<p>'.__("There was a problem with your Amazon API request. This is the error Amazon returned:","wprobot").'</p> <p><i><b>'.$pxml->Items->Request->Errors->Error->Code.':</b> '.$pxml->Items->Request->Errors->Error->Message.'</i></p>'; $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->SmallImage->URL; $thumbnail = '<a href="'.$item->DetailPageURL.'" rel="nofollow"><img style="float:left;margin: 0 20px 10px 0;" src="'.$timg.'" /></a>'; $link = '<a href="'.$item->DetailPageURL.'" rel="nofollow">'.$item->ItemAttributes->Title.'</a>'; // rating $image = wpr_star_rating($item->CustomerReviews->AverageRating); if($maxitems >= $itemcount) { $ads .= '<div>'.$thumbnail.$link.' '.$image.'<br/>'.$dcontent.'<br/><div style="clear:both;"></div></div>'; $itemcount++; } $added_post++; $i++; } } $yy++; } $page++;$cnum=0; } return $ads; }
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 = get_option('siteurl') . '/wp-content/plugins/WPRobot3/images/'; $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($options['wpr_aa_searchmode'] == "exact") { // $keywords = '"' .$keywords. '"'; //} 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", "ResponseGroup" => "Large"), $public_key, $private_key); } elseif ($browsenode != 0) { $pxml = wpr_aws_request($site, array("Operation" => "ItemSearch", "AssociateTag" => $affid, "SearchIndex" => $searchindex, "BrowseNode" => $browsenode, "MerchantId" => "All", "ItemPage" => $page, "ReviewSort" => "-HelpfulVotes", "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", "ResponseGroup" => "Large"), $public_key, $private_key); } if (!empty($pxml["error"])) { return $pxml; } //echo "<pre>";print_r($pxml);echo "</pre>"; 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 = '<p>' . __("There was a problem with your Amazon API request. This is the error Amazon returned:", "wprobot") . '</p> <p><i><b>' . $pxml->Error->Code . ':</b> ' . $pxml->Error->Message . '</i></p>'; $return["error"]["module"] = "Amazon"; $return["error"]["reason"] = "API fail"; $return["error"]["message"] = $message; return $return; } if (isset($pxml->Items->Request->Errors->Error->Code)) { $message = '<p>' . __("There was a problem with your Amazon API request. This is the error Amazon returned:", "wprobot") . '</p> <p><i><b>' . $pxml->Items->Request->Errors->Error->Code . ':</b> ' . $pxml->Items->Request->Errors->Error->Message . '</i></p>'; $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) { $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, '<br>'); $desc = substr($desc, 0, $elength); } $features = ""; if (isset($item->ItemAttributes->Feature)) { $features = "<ul>"; foreach ($item->ItemAttributes->Feature as $feature) { $posx = strpos($feature, "href="); if ($posx === false) { $features .= "<li>" . $feature . "</li>"; } } $features .= "</ul>"; } $timg = $item->MediumImage->URL; if ($timg == "") { $timg = $item->SmallImage->URL; } $thumbnail = '<a href="' . $item->DetailPageURL . '" rel="nofollow"><img style="float:left;margin: 0 20px 10px 0;" src="' . $timg . '" /></a>'; $link = '<a href="' . $item->DetailPageURL . '" rel="nofollow">' . $item->ItemAttributes->Title . '</a>'; $reviews = ""; $reviews = array(); if (isset($item->CustomerReviews->Review)) { $r = 0; foreach ($item->CustomerReviews->Review as $review) { $reviews[$r]["author"] = $review->Reviewer->Name; $reviews[$r]["rating"] = $review->Rating; $image = wpr_star_rating($review->Rating); $rtemplate = $options['wpr_aa_revtemplate']; $rtemplate = str_replace("{content}", strip_tags($review->Content, '<br><strong>'), $rtemplate); $rtemplate = str_replace("{rating}", $image, $rtemplate); $rtemplate = str_replace("{ratingnum}", $review->Rating, $rtemplate); $rtemplate = str_replace("{author}", $review->Reviewer->Name, $rtemplate); $rtemplate = str_replace("{keyword}", $keywords, $rtemplate); $rtemplate = str_replace("{link}", $link, $rtemplate); $rtemplate = str_replace("{url}", $item->DetailPageURL, $rtemplate); $reviews[$r]["content"] = $rtemplate; $r++; } } $price = str_replace("\$", "\$ ", $item->OfferSummary->LowestNewPrice->FormattedPrice); $listprice = str_replace("\$", "\$ ", $item->ItemAttributes->ListPrice->FormattedPrice); $content = $template; preg_match('#\\[has_reviews](.*)[\\/has_reviews]\\]#iU', $template, $check); if ($check[0] != false) { if ($item->CustomerReviews->TotalReviews == "" || $item->CustomerReviews->TotalReviews == 0 || !$item->CustomerReviews->TotalReviews) { $content = str_replace($check[0], "", $content); } } $content = str_replace(array("[has_reviews]", "[/has_reviews]"), "", $content); preg_match('#\\[has_listprice](.*)[\\/has_listprice]\\]#iU', $template, $matches); //print_r($matches); if ($matches[0] != false) { if ($listprice == "" || !$listprice) { $content = str_replace($matches[0], "", $content); } } $content = str_replace(array("[has_listprice]", "[/has_listprice]"), "", $content); $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}", '<a href="' . $item->DetailPageURL . '" rel="nofollow"><img src="' . $imagepath . 'buynow-small.gif" /></a>', $content); $content = str_replace("{buynow-big}", '<a href="' . $item->DetailPageURL . '" rel="nofollow"><img src="' . $imagepath . 'buynow-big.gif" /></a>', $content); $content = str_replace("{price}", $price, $content); $content = str_replace("{listprice}", $listprice, $content); $content = str_replace("{url}", $item->DetailPageURL, $content); $content = str_replace("{avgrating}", $item->CustomerReviews->AverageRating, $content); $content = str_replace("{reviewsnum}", $item->CustomerReviews->TotalReviews, $content); $content = str_replace("{keyword}", $keywords, $content); $content = str_replace("{link}", $link, $content); // rating if (strpos($content, "{rating}") != false) { $image = wpr_star_rating($item->CustomerReviews->AverageRating); $content = str_replace("{rating}", $image, $content); } // reviews $reviewspost = ""; $reviewsnum = $item->CustomerReviews->TotalReviews; preg_match('#\\{reviews(.*)\\}#iU', $content, $rmatches); if ($rmatches[0] == false) { } elseif ($item->CustomerReviews->TotalReviews == 0) { $content = str_replace($rmatches[0], $reviewspost, $content); } else { $reviewnum = substr($rmatches[1], 1); for ($i = 0; $i < $reviewnum; $i++) { if ($i == $reviewsnum || $i == 4) { break; } else { /*$image = wpr_star_rating($reviews[$i]["rating"]); $rtemplate = $options['wpr_aa_revtemplate']; //$rtemplate = str_replace("\n", "", $rtemplate); //$rtemplate = str_replace("\r", "", $rtemplate); $rtemplate = str_replace("{content}", $reviews[$i]["content"], $rtemplate); $rtemplate = str_replace("{rating}", $image, $rtemplate); $rtemplate = str_replace("{ratingcount}", $reviews[$i]["rating"], $rtemplate); $rtemplate = str_replace("{author}", $reviews[$i]["author"], $rtemplate);*/ $reviewspost .= $reviews[$i]["content"]; } } $content = str_replace($rmatches[0], $reviewspost, $content); } if (!empty($item->LargeImage->URL)) { $largestimage = $item->LargeImage->URL; } elseif (!empty($item->MediumImage->URL)) { $largestimage = $item->MediumImage->URL; } elseif (!empty($item->SmallImage->URL)) { $largestimage = $item->SmallImage->URL; } $single = array(); $single["unique"] = $item->ASIN; $single["title"] = $item->ItemAttributes->Title; $single["content"] = $content; $single["comments"] = $reviews; $single["customfield"] = $largestimage; $added_post++; array_push($return, $single); $i++; } } $yy++; } $page++; $cnum = 0; } return $return; }