昨日の ダーウィン賞の話 を書くのに Amazon から本の画像を嵌めこむのになんか妙に手間だったので、AmazonSimpleAdmin plugin を入れてみました。
ASIN を入れると画像とかデータを取ってきて表示してくれるという、まあありがちと言えばありがちな plugin です。でも WordPress Plugin Directory で検索したら、Widget に表示するのはいっぱいあったけど、本文中に表示するのが他に無かったんだよなー。
ショップを CA, DE, FR, JP, UK, US から選べるので日本人でも OK と。しかしこの plugin, 先週リリースされたばかりで、Rating もまだ一つも無く、コメントも FAQ も無い状況ですが、使ってみた感想など。
えーまずインストールで壁が。説明には AmazonSimpleAdmin requires PHP5
としか書いてないんですが、実は PHP5 に加えて Zend Framework が必要でした。Zend/Rest/Client.php が無いとか言うので何事かと思ったぜ。Zend Framework のサイト からダウンロードしてインストールしませう。Zend Framework の入ってないレンタルサーバだとちょっと面倒かもしれんね。いやまあ自分のホームディレクトリに一式入れとけばそれで動くんだけど。
とまあそんな感じで何とか動きました。本文中に [asa]ASIN[/asa] の記法で ASIN を書くと、その ASIN で Amazon Web Service にクエリをかけて、結果をテンプレートに従って整形して出力してくれます。デフォルトのテンプレートだとこんな感じ。
[asa default_de]B000X431A4[/asa]
おわっ、ドイツ語ぢゃね。いやこの plugin の作者がドイツ人なんすよ実は。ドイツ人め…
デフォルトのテンプレートと書いたのは、テンプレートをいろいろ切り替えることができるためです。なんか独自のテンプレートシステムを内蔵してて、{$テンプレート名} っつう表記で整形方法を指示することができます。うむ、本体のコードをいじらなくても出力を変えられるのは良いことだな。しかし、独自方式でなく Smarty とか使ってれば良かったのにと思わなくもない。Zend Framework 入れるぐらいなら Smarty 入れるのも一緒だろ。テンプレートの表記はこんな感じです。
<div class=”subcolumns”>
<div style=”border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url({$AmazonLogoSmallUrl}) right bottom no-repeat #ffffff;”>
<div style=”width: {$SmallImageWidth}px; float: left; margin-right: 5px;”>
<a href=”{$AmazonUrl}” target=”_blank”><img src=”{$SmallImageUrl}” width=”{$SmallImageWidth}” height=”{$SmallImageHeight}” border=”0″ /></a>
</div>
<div>
<a href=”{$AmazonUrl}” target=”_blank”>{$Title}</a><br />
<strong>Preis:</strong> <span style=”color: #990000; font-weight: bold;”>{$AmazonCurrency} {$AmazonPrice}</span><br />
<p>{$TotalOffers} Angebote erhältlich ab <span style=”color: #990000; font-weight: bold;”>{$LowestOfferCurrency} {$LowestOfferPrice}</span></p>
</div>
<div style=”clear: both;”></div>
</div>
</div>
テンプレートの切り替えは [asa テンプレート名]ASIN[/asa] っつう表記で行います。その結果はこんな感じ。
[asa book]486191082X[/asa]
[asa music]B000000WIA[/asa]
ただーし、AmazonSimpleAdmin は、Amazon Web Service のクエリ結果のうち Author, Artist 要素をなぜかパースしてくれないので、これらを表示させることができません。上の表示結果には入ってますけど、これは私が AsaCore.php をいじって無理やりパースするよう書き換えたためです。
あと、通貨単位が日本円の場合は JPY で表示されますが、これも私がコードを書き換えて JPY の場合は無理やり ¥ に書き直すようにしてます。日本円しかあり得ないという人の場合は、コードでなくテンプレートファイルの方で対応すればいいと思う。
つうわけで、なんか変なところに手が届かない隔靴掻痒の仕様という気もしますが、まあまだバージョンが 0.9.0 だそうだから、これから拡充されてくんじゃないかと思う。とりあえずは勝手にコード書き換えて使うことにしよう。
他にも Collection とか Preview とかの機能もあるそうですが、そこまではテストの手が回らんかった。

