[PHP-users 27251] Re: amazon ECS ”Medium”で画像が返ってこない時がある

shima tetuo mlmlml @ lily.freemail.ne.jp
2005年 10月 19日 (水) 13:50:55 JST


tetuoです。

メンテナーの方ですね。コードは大変参考にさせて頂いております。

On Wed, 19 Oct 2005 11:08:55 +0900
Tatsuya Tsuruoka <ttsuruoka @ p4life.jp> wrote:

> 
> Amazon のディスカッションボードに同じ現象の報告がありました.
> http://forums.prospero.com/n/mb/message.asp?webtag=am-assocdevxml&msg=8797.11&ctx=4096

メーリングリストなどを探していましたが、そういえば昔このディスカッション
サイトを見た事があったように記憶してます。
いずれにしても、現状は待つしかなさそうですね。



> isset(),empty() などで画像の情報を調べて,
> 空の場合には代替画像の URL,Height, Width を
> 設定しておけばよいと思います.

現状、Smartyのプラグインで逃げています。
適当に作っていますが、他の方の参考になれば...

---------------
使う時 
$itemは、PEAR::Services_AmazonECS4で返ってきたItem1つのデータ丸ごと
---------------
<img src="{amazon_image item=$item size="LargeImage"}">

---------------
プラグイン
---------------
<?php
function smarty_function_amazon_image($params, &$smarty){
    $itemData = $params['item'];
    $imageSize = $params['size'];
    
    if(isset($itemData['ImageSets']['ImageSet'])){
        $set = $itemData['ImageSets']['ImageSet'];
        if(is_array($set)){
            foreach ($set as $each){
                if($each['Category'] == 'primary'){
                    return $each[$imageSize]['URL'];
                }
            }
        }else {
            return $set[$imageSize]['URL'];
        }
    }
    
    if(isset($itemData[$imageSize]['URL'])){
        return $itemData[$imageSize]['URL'];
    }
    return '/images/AmazonNoImage.gif';
}
?>


tetuo
mlmlml @ lily.freemail.ne.jp
http://mlmlml.seesaa.net/




PHP-users メーリングリストの案内