Plone2.5だけどATAmazonを使ってみた
ATAmazonはAmazonに掲載されているアイテムをPloneサイト内で表示するプロダクトです。私はAmazonをさほど利用しませんのであまり興味はなかったのですが、柴田さんが「みんなのPython」を執筆されたのを機に使ってみることにしました。
ただ現在リリースされてるATAmazonはPlone2.1用なので、Plone2.5ではちょっと動きません。ので、2.5用のがないかなぁとSVNリポジトリを見てみると、そのものズバリのfor-plone2-5というブランチがありました。ということでこいつを使ってみることにします。
Amazonのdeveloper keyを入手する
ATAmazonを利用するにはAmazonの「Web Service Developer Key」というものが必要なので、まずはこれを入手しなければいけません。Amazonから入手できます。
右上部にある「Sign Up For Web Service」というボタンから登録します。
登録が完了すると右上部にある「Your Web Services Account」ボタンの「View Access Key Identifiers」よりdeveleper keyを調べることができます。
PloneのリポジトリからATAmazonをダウンロードする
PloneのプロダクトリポジトリはSubversionで管理されているので、SVNクライアントを利用します。
* プロダクトのリポジトリを閲覧するには「project resources」から「Code repository」をクリックします。ただしリポジトリがないプロダクトもある(のかな)。
SVNクライアントはこのクライアントを利用しました。適当な場所に解凍した後、コマンドプロンプトを立ち上げ、解凍したディレクトリ以下のbinディレクトリへ移動します。
cd C:\svn-win32-1.3.2\bin
ここで以下のようにすればbinディレクトリにATAmazonというフォルダが生成され、そこにリポジトリのファイルをダウンロードされます。
svn export svn:svn.plone.org/svn/collective/ATAmazon/branches/for-plone2-5/ ATAmazon
ATAmazonを使う
ATAmazonのインストール
インストールは通常通り、Ploneの「サイト設定→プロダクトの追加と削除」より行います。「svn branches/for-plone2-5」というバージョンになっています。
ATAmazonの設定
ATAmazonを使うには適切な設定が必要です。この設定はZMI経由で「Ploneインスタンス→amazon_tool」のpropertiesタブより行います。
- Amazon web services developer key (AWS 3.0)
- Amazonで入手したdeveloper keyを入力する
- Amazon associate ID
- よくわからないのでそのままにしておくー
- Amazon Locale
- やっぱjpでしょう
- Amazon item folder ID
- ポートレットがこの名前のフォルダ内を探してアイテムを表示してくれる
- Number of items listed in the Amazon portlet
- ポートレットに表示するアイテムの数
- Show similar items in the portlet when viewing an item
- 関連アイテムを表示するかどうか
入力したら「Save Changes」ボタンを押して設定は完了です。
getAmazonCurrentFolderを編集
getAmazonCurrentFolder.pyの18行目、シャープの後にスペースがあるのでちゃんと消しておいたり、シャープを全部消したりしておきました。
# from AccessControl import Unauthorized
portlet_amazonを編集
portlet_amazonの28行目くらいにtal:not_bookというタグがありますが、この中に
<div tal:define="global items here/getAmazonItems;
global depth python:0;" />
とあるのですが、これだとdivタグがうまく閉じてくれないので
<div tal:define="global items here/getAmazonItems;
global depth python:0;"></div>
として閉じるようにしてやりました。
またデフォルトではポートレットに表示されているアイテムをクリックすると、Plone内に作ったamazon itemへ飛ぶのですが、これをAmazonに直接飛ぶように編集してやりました。portlet_amazonの40行目くらいにあるこのaタグを
<a href="/Nagosui/COREBlog2/atamazon-on-plone25"
tal:attributes="href python:test(show_similar, current_folder.absolute_url()+'/amazon_tool/'+obj.getAsin()+'/?depth:int='+str(depth), obj.absolute_url());
title obj/Title">
<img alt="" tal:attributes="src obj/getImageUrlSmall" /><br />
<span tal:replace="obj/Title" > Title </span>
</a>
以下のようにhrefを編集して完了。
<a href="/Nagosui/COREBlog2/atamazon-on-plone25"
tal:attributes="href obj/getAmazonUrl; ←ここを変えた
title obj/Title">
<img alt="" tal:attributes="src obj/getImageUrlSmall" /><br />
<span tal:replace="obj/Title" > Title </span>
</a>
他にも何かいじったような気がしますが忘れちゃった(´ω`)…
- Category(s)
-
Plone
- The URL to Trackback this entry is:
- http://nagosui.org/Nagosui/COREBlog2/atamazon-on-plone25/tbping