サマリ | PukiWikiページ名をAmazonのキーワードリンクに投入し、アマゾンのアソシエイトライブリンクを得る |
---|---|
リビジョン | 1.0 |
対応バージョン | 1.3.6 |
投稿者 | 水橋希 |
投稿日 | 2004-02-11 (WED) 20:13:05 |
サイドメニューに、現在表示しているページ名の関連商品をAmazonから検索して表示するために作りました。
Amazonのいう「一番強力なリンク」、いわゆる「キーワード型ライブリンク」なので、アマゾンの商品からヒットしたものがランダムで抜き出されて表示されます。
#amazonkey
なし
PukiWiki 1.4.2で使用する場合は、下記の部分を修正する必要があります。
global $html_transitional; $html_transitional = TRUE;を設定してください。パースエラーが発生します。
global $html_transitional; $html_transitional = TRUE;を設定してください。パースエラーが発生します。
ご指摘ありがとうございます。1と2については簡単に対応できますが、3~6については、アソシエイトセンターで生成されたHTMLをそのまま添付して出力とする安直な方法を取るのではダメだということですね。
一旦変数に読み込んだ後にHTMLの構造解析をかけて、変換をかけることになるでしょうか。
ただし、そこまでの工数をかける価値があるプラグインとはわたしには思えません。ご説明していただいた点をソースコード内に記述して、利用者に任せる、または実用プラグインとしては使用不可としてしまうのが妥当ということになりますでしょうか。
そのあたりはどうお思いになりますでしょう?
3~6も簡単に修正できます。
global $html_transitional; $html_transitional = TRUE; $linkhtml .= <<<EOD <iframe scrolling="no" frameborder="0" width="120" height="450" src="http://rcm-jp.amazon.co.jp/e/cm?t=$amazon_aid&l=st1&search=$r_page&mode=$genre&p=10&o=9&f=ifr"> <table border="0" cellpadding="0" cellspacing="0" width="120" height="450"><tr><td> <map name="boxmap10"> <area shape="RECT" coords="4,437,115,450" href="http://rcm-jp.amazon.co.jp/e/cm/privacy-policy.html?o=9" alt="プライバシー ポリシー" /> <area coords="0,0,10000,10000" href="http://www.amazon.co.jp/exec/obidos/redirect?tag=$amazon_aid&path=tg/browse/-/489986" /> </map> <img src="http://rcm-images.amazon.com/images/G/09/extranet/associates/amzn_recommends/xproduct-skyscrapper120x450.gif" width="120" height="450" border="0" usemap="#boxmap10" /> </td></tr></table> </iframe> EOD; return $linkhtml; }
ソースコード内の注釈にもありますように、この内部に含まれるHTMLは、アマゾンのアソシエイトセンターで生成されるHTMLであり、各ユーザーが選択したデザインとパラメータ、さらに、アマゾンのデザイン追加などの要因によって記述が固定しないものなのです。
設置者が自分で修正できないのであれば、PukiWiki 1.3.6でお使いください*1。
了解しました。HTMLを直接修正できない以上、1.4.2のプラグインとしては提供不可ですね。1.3.6にマークしなおしておきます。それでよろしいでしょうか。。
アマゾンがXHTMLに対応していない以上、仕方ないですね。パースエラーはページ全体が表示されなくなる致命的なエラーですので…*2
調べたところ、「この内部に含まれるHTMLは、アマゾンのアソシエイトセンターで生成されるHTMLであり、各ユーザーが選択したデザインとパラメータ、さらに、アマゾンのデザイン追加などの要因によって記述が固定しないもの」という水橋希さんの説明は誤りであることが判明しました。
アマゾンのアソシエートセンターで生成されるHTMLを元に、XHTML 1.1に書き換えることで、PukiWiki 1.4系でも使用できます。具体的には、dev:PukiWiki/Plug-inの仕様参照。
ご調査ありがとうございました。
今示していただいたコードを読んでみたんですが、やはりアソシエーションで示されたサンプルを元に設置者がカスタマイズしないといけないのですよね。
わたしの「この内部に含まれるHTMLは、アマゾンのアソシエイトセンターで生成されるHTMLであり、各ユーザーが選択したデザインとパラメータ、さらに、アマゾンのデザイン追加などの要因によって記述が固定しない」という書き方にreimyさんが誤解なさるような部分があったようです。申し訳ありません。
「記述が固定しない」というのは、アソシエイトページでユーザーが希望する外見やキーワードの条件を入れてサブミットするとその時点でHTMLが生成されてくる、という意味で使ったつもりで、PukiWikiの実行時に生成される、というような意味ではありません。
いずれにしても、書き直し方についても明確なTipsを与えていただけたようで、大変に助かります。お気にかけていただきありがとうございました。
また、何かよいプラグインのアイディアがあったら持ち込ませていただきますので、その際にはご指導いただけると幸いです。
具体例をreimy.comのメニューバー下部に設置していますので、ご覧ください。Internet Explorerの場合はXHTML 1.0 transitionalの<iframe>で、IE以外のブラウザではXHTML 1.1の<object>で表示しています*3。
この手法は、frameを使わずにページの一部に他のページを取り込んで表示する場合に応用できます。こうすれば、XHTML 1.1でvalidになります。