よそのサービスで、ページをパースした結果に基づいてAWSの検索結果を返してくれるというものがあったが、なんだかコンテンツ以外の場所の結果が利用されているのではないかという感じでイマイチ(COREBlogには対応していないためだと思われる)だった。
プラグインをダウンロード する。
ZopeのProductsディレクトリに展開したファイル群(ディレクトリ毎)を配置
Zopeインスタンスを再起動
COREBlogの直下の「contents」タブをクリック、COREBlogAWSPluginを追加。
IDは自動で降られるのでいじらず。 Titleはどうでもいいので、どうでもいい。
追加されたCOREBlogAWSPluginを選択すると、現在のエントリ一覧が表示される。
まずは、settingタブをクリックして必要項目を入力。
assosiate ID: amazonのアフィリエイトを申し込んだときにもらったもの(eg everes-22)
Developer Token: amazonのWebServiceを申し込んだときにもらったもの(eg 1X2XXXXXXX)
Server URL: http://xml.amazon.co.jp/onca/xml3
locale: jp
charset: COREBlogのものにあわせる
type: よくわからないのでheavyを選んだ
lifetime(sec): 商品の価格を表示する場合は1時間に一回はキャッシュをクリアする必要がある(規約)ようなので、よくわからなければ 3600
再びCOREBlog直下のcontentsタブをクリック、DTMLMethodを追加。
IDは何でも良いが、aws_viewとした。名前も何でも良い。
追加されたaws_viewを編集( Polone スキンを使っているので、テーブルを使用しています)
<dtml-in "aws_plugin.getAsin(id)">
<dtml-with "aws_plugin.getDetail(_['sequence-item'])" mapping>
<dtml-try>
<br><table><tr><td>
<dtml-if hasImage><a href="<dtml-var url>"><img style="text-align:left" src="<dtml-var ImageUrlSmall>" border="0"></a></dtml-if>
</td><td>
<a href="<dtml-var url>"><strong><dtml-var ProductName></strong></a>[<dtml-var Catalog>]<br><dtml-if Authors>
<dtml-if "isinstance(Authors['Author'],str)">
<dtml-var "Authors['Author']"><br>
<dtml-else>
<dtml-var "'/'.join(Authors['Author'])" missing=""><br>
</dtml-if>
<dtml-elif Artists>
<dtml-if "isinstance(Artists['Artist'],str)">
<dtml-var "Artists['Artist']"><br>
<dtml-else>
<dtml-var "'/'.join(Artists['Artist'])" missing=""><br></dtml-if></dtml-if></td></tr></table>
<dtml-except>
<dtml-var "aws_plugin.getDetail(_['sequence-item'])">
</dtml-try>
</dtml-with>
</dtml-in>
cssを設定します
COREBlog直下にcssというディレクトリがあるので、そのなかにあるbase_cssを開き、最後に下記のようなcssを追加します。
/* aws_plugin */
.amazon{ border: 1px solid #CCC; background: white; color: black; float: right; padding: 1em; margin : 0 0 1em 0.5em; width: 300px; clear: all; }
あとは、COREBlog直下のentry_bodyの好きな位置に挿入すれば準備は完了です。
わたしは、本文が終わった直後のPost情報前に置きました(<dtml-var aws_view>だけをどこかに配置)。
------ snip
<dtml-var aws_view>
</dtml-if>
<div class="posted"> Posted by <dtml-var author>
------ snipここまで
いよいよ、対象の商品の選択です。
amazonで商品を検索して、商品をクリックした際のURLに「ASIN/0764548573/qid=」という部分があります。このURLの07645485 73の部分がASINです。
COREBlog直下にあるaws_pluginをクリックすると出てくるエントリの一覧からアフィリエイトを追加したいエントリを選択します。 入力フィールド(テキストエリア)がありますので、関連する商品分のASINを改行で区切って入力しましょう。