Esempio n. 1
0
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;
        }
    }
}
Esempio n. 2
0
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;		
}
Esempio n. 3
0
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;
}