関連: official:自作プラグイン/amazon.inc.php
↓のページ登録IDの取得(英語)から取得したID を使います。
http://www.amazon.co.jp/gp/feature.html?docId=451209
define('AWS_ACCESS_KEY_ID', '取得したID');
define('PLUGIN_AMAZON_XML', 'http://ecs.amazonaws.jp/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=' . AWS_ACCESS_KEY_ID . '&Operation=ItemLookup&Version=2007-10-29&ItemId=');
<ProductName>→<Title>
これら3点を修正したら元の通り表示するようになりました。
define('PLUGIN_AMAZON_XML', 'http://ecs.amazonaws.jp/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=' . AWS_ACCESS_KEY_ID . '&Operation=ItemLookup&Version=2007-10-29&ResponseGroup=ItemAttributes,Images&ItemId=');
define('PLUGIN_AMAZON_IMAGE_SIZE', 'MediumImage');
function plugin_amazon_cache_image_fetch($dir) { global $asin, $asin_ext, $asin_all; $filename = $dir . 'ASIN' . $asin . '.jpg'; $get_img = 0; if (! is_readable($filename)) { $get_img = 1; } elseif (PLUGIN_AMAZON_EXPIRE_IMAGECACHE * 3600 * 24 < time() - filemtime($filename)) { $get_img = 1; } if ($get_img) { - $url = 'http://images-jp.amazon.com/images/P/' . $asin . '.' . $asin_ext . '.MZZZZZZZ.jpg'; - if (! is_url($url)) return FALSE; - - $body = plugin_amazon_get_page($url); - if ($body != '') { - $tmpfile = $dir . 'ASIN' . $asin . '.jpg.0'; + $url = PLUGIN_AMAZON_XML . $asin; + $xml = plugin_amazon_get_page($url); + if ($xml != '') { + $xml = mb_convert_encoding($xml, SOURCE_ENCODING, 'UTF-8'); + $tmpary = array(); + preg_match('/<' . PLUGIN_AMAZON_IMAGE_SIZE . '><URL>([^<]*)</', $xml, $tmpary); + $tmpfile = trim($tmpary[1]); + $body = plugin_amazon_get_page($tmpfile); $fp = fopen($tmpfile, 'wb'); fwrite($fp, $body); fclose($fp); $size = getimagesize($tmpfile); unlink($tmpfile); } - if ($body == '' || $size[1] <= 1) { // 通常は1が返るが念のため0の場合も(reimy) + if ($xml == '' || $size[1] <= 1) { // 通常は1が返るが念のため0の場合も(reimy) // キャッシュを PLUGIN_AMAZON_NO_IMAGE のコピーとする if ($asin_ext == '09') { - $url = 'http://images-jp.amazon.com/images/P/' . $asin . '.01.MZZZZZZZ.jpg'; - $body = plugin_amazon_get_page($url); - if ($body != '') { - $tmpfile = $dir . 'ASIN' . $asin . '.jpg.0'; + $xml = plugin_amazon_get_page($url); + if ($xml != '') { + $xml = mb_convert_encoding($xml, SOURCE_ENCODING, 'UTF-8'); + $tmpary = array(); + preg_match('/<' . PLUGIN_AMAZON_IMAGE_SIZE . '><URL>([^<]*)</', $xml, $tmpary); + $tmpfile = trim($tmpary[1]); + $body = plugin_amazon_get_page($tmpfile); $fp = fopen($tmpfile, 'wb'); fwrite($fp, $body); fclose($fp); $size = getimagesize($tmpfile); unlink($tmpfile); } } - if ($body == '' || $size[1] <= 1) { + if ($xml == '' || $size[1] <= 1) { $fp = fopen(PLUGIN_AMAZON_NO_IMAGE, 'rb'); if (! $fp) return FALSE; $body = ''; while (! feof($fp)) $body .= fread($fp, 4096); fclose ($fp); } } plugin_amazon_cache_image_save($body, CACHE_DIR); } return $filename; }
2.2を元にECS4.0対応を施して見ました。
が、まだ多くの商品でテストしたわけではないので人柱版という位置付けとさせて頂きます。
またプラグイン使用には以下のパラメータが必要となります。各自で用意してください。
対策は完了しましたが、以前のとき同様ファイルをアップロードする権限がないため自分が手を加えた個所を記載しておきます。 -- 萬Q 2008-06-10 (火) 16:59:22
アップされているv2.2見たところ初めて見る機能(買い物カゴ)があるのでしんどそうですが合い間を縫っていじってみようと思います。-- 萬Q 2008-09-09 (火) 18:40:11
v2.2のソース内にECS 4.0では無効と思われるタグがいくつか使われていて、それらに取って代れるような情報タグが見つからないorz -- 萬Q 2008-09-11 (木) 20:39:14
補足するとCACHE機能使用していないのでdelete,deleteimage,deletetitleは削除しました。-- 萬Q 2008-09-18 (木) 12:12:44