diff -urp amazontools/amazon.install amazontoolsoriginal/amazon.install --- amazontools/amazon.install 2006-12-30 17:26:04.000000000 -0800 +++ amazontoolsoriginal/amazon.install 2008-12-09 12:04:44.448556700 -0800 @@ -32,6 +32,7 @@ function amazon_install() { author text default NULL, editorialreview longtext, binding varchar(100) default NULL, + pages int(10) default NULL, listamount int(10) default NULL, listcurrencycode char(3) default NULL, listformattedprice varchar(10) default NULL, @@ -67,6 +68,7 @@ function amazon_install() { author text NOT NULL default '', editorialreview text default '', binding varchar(100) default '', + pages integer default '0', listamount integer default '0', listcurrencycode char(3) default '', listformattedprice varchar(10) default '', diff -urp amazontools/amazon.module amazontoolsoriginal/amazon.module --- amazontools/amazon.module 2007-02-14 18:45:50.000000000 -0800 +++ amazontoolsoriginal/amazon.module 2008-12-09 12:01:57.531556700 -0800 @@ -148,7 +148,7 @@ function _refresh_amazonitem_data($Amazo "mediumimageurl = '%s', mediumimageheight = %d, mediumimagewidth = %d, ". "largeimageurl = '%s', largeimageheight = %d, largeimagewidth = %d, ". "author = '%s', editorialreview = '%s', binding = '%s', listamount = %d, listcurrencycode = '%s', " . - "listformattedprice = '%s', amount = %d, currencycode = '%s', " . + "listformattedprice = '%s', amount = %d, pages = %d, currencycode = '%s', " . "formattedprice = '%s', pricedate = now()" . "where asin = '%s'", $Amazonitem->detailpageurl, @@ -157,7 +157,7 @@ function _refresh_amazonitem_data($Amazo $Amazonitem->largeimageurl, $Amazonitem->largeimageheight, $Amazonitem->largeimagewidth, serialize($Amazonitem->author), db_escape_string($Amazonitem->editorialreview), $Amazonitem->binding, $Amazonitem->listamount, $Amazonitem->listcurrencycode, - $Amazonitem->listformattedprice, $Amazonitem->amount ? $Amazonitem->amount: $Amazonitem->listamount, $Amazonitem->currencycode, + $Amazonitem->listformattedprice, $Amazonitem->amount ? $Amazonitem->amount: $Amazonitem->listamount, $Amazonitem->numberofpages, $Amazonitem->currencycode, $Amazonitem->formattedprice ? $Amazonitem->formattedprice: $Amazonitem->listformattedprice, /* time(),*/ $Amazonitem->asin); } @@ -413,7 +413,7 @@ function amazon_node_form_validate($form $amazondata = _amazon_product_data_from_Amazon($asin); if (count($amazondata) == 0) { - form_set_error('asin', t("No product: %asin exists at Amazon.com"), array('%asin' => $asin)); + form_set_error('asin', t("No product: " . $asin . " exists"), array('%asin' => $asin)); } } @@ -474,14 +474,14 @@ function amazon_insert($node) { smallimageurl, smallimageheight, smallimagewidth, mediumimageurl, mediumimageheight, mediumimagewidth, largeimageurl, largeimageheight, largeimagewidth, - author, editorialreview, binding, listamount, + author, editorialreview, binding, listamount, pages, listcurrencycode, listformattedprice, title, amount, currencycode, formattedprice, pricedate, availability) VALUES ('%s', '%s', '%s', %d, %d, '%s', %d, %d, '%s', %d, %d, - '%s', '%s', '%s', %d, + '%s', '%s', '%s', %d, %d, '%s', '%s', '%s', %d, '%s', '%s', '%s', '%s')", @@ -491,13 +491,14 @@ function amazon_insert($node) { db_escape_string($amazon_data->largeimageurl), $amazon_data->largeimageheight, $amazon_data->largeimagewidth, serialize($amazon_data->author), db_escape_string($amazon_data->editorialreview), $amazon_data->binding, $amazon_data->listamount, + $amazon_data->numberofpages, $amazon_data->listcurrencycode, $amazon_data->listformattedprice, $amazon_data->title, $amazon_data->amount ? $amazon_data->amount: $amazon_data->listamount, $amazon_data->currencycode, $amazon_data->formattedprice ? $amazon_data->formattedprice: $amazon_data->listformattedprice, date('Y-m-d H:i:s'), $amazon_data->availability); } $rating = $node->rating ? $node->rating : 0; - db_query("INSERT INTO {amazonnode} (nid, asin, ntype, rating) VALUES (%d, '%s', '%s', %d)", $node->nid, $node->asin, $node->type, $rating); + db_query("INSERT INTO {amazonnode} (nid, asin, ntype, rating) VALUES (%d, '%s', '%s', %d)", $node->nid, $amazon_data->asin, $node->type, $rating); } function amazon_load(&$node) { diff -urp amazontools/amazon.php5.inc amazontoolsoriginal/amazon.php5.inc --- amazontools/amazon.php5.inc 2006-10-15 12:04:10.000000000 -0700 +++ amazontoolsoriginal/amazon.php5.inc 2008-12-09 12:03:35.607556700 -0800 @@ -60,10 +60,8 @@ } $AmazonBookSearchParams = array( - 'AWSAccessKeyId'=>AMAZON_SEARCH_AMAZON_ACCESSKEY_ID, -// 'AssociateTag'=>AMAZON_SEARCH_AMAZON_ASSOCIATE_TAG, - 'Operation'=>AMAZON_SEARCH_AMAZON_ITEM_SEARCH, - 'Version' => AMAZON_ECS_VERSION + 'SubscriptionId'=>AMAZON_SEARCH_AMAZON_ACCESSKEY_ID, + 'Operation'=>AMAZON_SEARCH_AMAZON_ITEM_LOOKUP ); /** if the referring page passes in variables with the above names @@ -145,7 +143,8 @@ } case 'Binding': case 'Title': - case 'DetailPageURL':{ + case 'NumberOfPages': + case 'DetailPageURL':{ $Amazon_ItemAttributes[strtolower($ItemAttributesData->nodeName)] = _amazon_element_content($ItemAttributesData); break; } @@ -310,6 +309,7 @@ ob_start(); curl_exec($ch); $AmazonXML = ob_get_clean(); + //print_r($AmazonXML); curl_close($ch); return $AmazonXML; } @@ -339,8 +339,26 @@ * an array of amazon_item objects. */ function amazon_get_items($Amazon_Params) { - $_amazon_search_amazonDOM = amazon_get_DOM($Amazon_Params); - return _amazon_items_array_from_DOM($_amazon_search_amazonDOM); + $_amazon_search_amazonDOM = amazon_get_DOM($Amazon_Params); + $amazon_item = _amazon_items_array_from_DOM($_amazon_search_amazonDOM); + + $amazon_categories = array('ISBN', 'Books', 'UPC', 'DVD', 'UPC', 'Music'); + + $i=0; + $category_size = count($amazon_categories); + + //if empty, check to see if it was an ISBN-13, or UPC + while((count($amazon_item) == 0) && ($i < $category_size)) { + $temp_param = array('IdType'=>$amazon_categories[$i],'SearchIndex'=>$amazon_categories[$i+1]); + $AmazonBookSearchISBN13 = array_merge($Amazon_Params, $temp_param); + + $_amazon_search_amazonDOM = amazon_get_DOM($AmazonBookSearchISBN13); + $amazon_item = _amazon_items_array_from_DOM($_amazon_search_amazonDOM); + + $i = $i + 2; + } + + return $amazon_item; } ?> \ No newline at end of file