amazonkey.inc.php

サマリPukiWikiページ名をAmazonのキーワードリンクに投入し、アマゾンのアソシエイトライブリンクを得る
リビジョン1.0
対応バージョン1.3.6
投稿者水橋希?
投稿日2004-02-11 (WED) 20:13:05

サイドメニューに、現在表示しているページ名の関連商品をAmazonから検索して表示するために作りました。
Amazonのいう「一番強力なリンク」、いわゆる「キーワード型ライブリンク」なので、アマゾンの商品からヒットしたものがランダムで抜き出されて表示されます。

使用例

#amazonkey

引数

なし

コメント

  • reimy 2004-02-12 (THU) 00:27:42

    PukiWiki 1.4.2で使用する場合は、下記の部分を修正する必要があります。

    1. <iframe>を使用しているため、プラグイン内で
      global $html_transitional;
      $html_transitional = TRUE;
      を設定してください。パースエラーが発生します。
    2. <map>にname属性を使用しているため、プラグイン内で
      global $html_transitional;
      $html_transitional = TRUE;
      を設定してください。パースエラーが発生します。
    3. <area>、<map>などのタグ名及び属性名が大文字になっているため、パースエラーが発生します。小文字に変更してください。
    4. <area>、<img>の閉じタグが必要です。パースエラーが発生します。
    5. <iframe>の属性値が引用符で囲まれていないため、パースエラーが発生します。引用符で囲んでください。
    6. <iframe>のsrc属性値で&が&amp;になっていないため、パースエラーが発生します。&amp;に修正してください。
    7. <area>のhref属性値で&が&amp;になっていないため、パースエラーが発生します。&amp;に修正してください。
  • 水橋希? 2004-02-12 (THU) 01:04:32

    ご指摘ありがとうございます。1と2については簡単に対応できますが、3~6については、アソシエイトセンターで生成されたHTMLをそのまま添付して出力とする安直な方法を取るのではダメだということですね。
    一旦変数に読み込んだ後にHTMLの構造解析をかけて、変換をかけることになるでしょうか。
    ただし、そこまでの工数をかける価値があるプラグインとはわたしには思えません。ご説明していただいた点をソースコード内に記述して、利用者に任せる、または実用プラグインとしては使用不可としてしまうのが妥当ということになりますでしょうか。
    そのあたりはどうお思いになりますでしょう?

    • reimy 2004-02-12 (THU) 01:08:28

      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&amp;l=st1&amp;search=$r_page&amp;mode=$genre&amp;p=10&amp;o=9&amp;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&amp;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;
      }
  • 水橋希? 2004-02-12 (THU) 01:12:46

    ソースコード内の注釈にもありますように、この内部に含まれるHTMLは、アマゾンのアソシエイトセンターで生成されるHTMLであり、各ユーザーが選択したデザインとパラメータ、さらに、アマゾンのデザイン追加などの要因によって記述が固定しないものなのです。

  • reimy 2004-02-12 (THU) 01:17:46

    設置者が自分で修正できないのであれば、PukiWiki 1.3.6でお使いください*1

  • 水橋希? 2004-02-12 (THU) 01:25:15

    了解しました。HTMLを直接修正できない以上、1.4.2のプラグインとしては提供不可ですね。1.3.6にマークしなおしておきます。それでよろしいでしょうか。。

  • reimy 2004-02-12 (THU) 01:42:22

    アマゾンがXHTMLに対応していない以上、仕方ないですね。パースエラーはページ全体が表示されなくなる致命的なエラーですので…*2

  • reimy 2004-04-09 (FRI) 20:08:17

    調べたところ、「この内部に含まれるHTMLは、アマゾンのアソシエイトセンターで生成されるHTMLであり、各ユーザーが選択したデザインとパラメータ、さらに、アマゾンのデザイン追加などの要因によって記述が固定しないもの」という水橋希?さんの説明は誤りであることが判明しました。

    アマゾンのアソシエートセンターで生成されるHTMLを元に、XHTML 1.1に書き換えることで、PukiWiki 1.4系でも使用できます。具体的には、dev:PukiWiki/Plug-inの仕様参照。

  • 水橋希? 2004-04-17 (SAT) 13:29:05

    ご調査ありがとうございました。

  • 水橋希? 2004-04-17 (SAT) 14:40:08

    今示していただいたコードを読んでみたんですが、やはりアソシエーションで示されたサンプルを元に設置者がカスタマイズしないといけないのですよね。
     わたしの「この内部に含まれるHTMLは、アマゾンのアソシエイトセンターで生成されるHTMLであり、各ユーザーが選択したデザインとパラメータ、さらに、アマゾンのデザイン追加などの要因によって記述が固定しない」という書き方にreimyさんが誤解なさるような部分があったようです。申し訳ありません。
     「記述が固定しない」というのは、アソシエイトページでユーザーが希望する外見やキーワードの条件を入れてサブミットするとその時点でHTMLが生成されてくる、という意味で使ったつもりで、PukiWikiの実行時に生成される、というような意味ではありません。
     いずれにしても、書き直し方についても明確なTipsを与えていただけたようで、大変に助かります。お気にかけていただきありがとうございました。
     また、何かよいプラグインのアイディアがあったら持ち込ませていただきますので、その際にはご指導いただけると幸いです。

  • reimy 2004-04-17 (SAT) 17:27:01

    具体例をreimy.comのメニューバー下部に設置していますので、ご覧ください。Internet Explorerの場合はXHTML 1.0 transitionalの<iframe>で、IE以外のブラウザではXHTML 1.1の<object>で表示しています*3

    この手法は、frameを使わずにページの一部に他のページを取り込んで表示する場合に応用できます。こうすれば、XHTML 1.1でvalidになります。

  • frame等を直したのですが、なぜかページ全体が文字化けします。同じようなことは、起きていませんか? -- けん 2004-08-28 (土) 15:31:24

*1 PukiWiki 1.3.6(HTML 4.01 Transitional)でも<iframe>のsrc属性や<area>のhref属性の中の&は&amp;にしないと本当は拙い。この部分の修正だけでも、アマゾンに要求したほうがいいと思う。
*2 MenuBarに入れると、全ページでパースエラーが発生するので、アクセス不能になってしまう。
*3 Internet Explorerの<object>はダミーのスクロールバーが表示されてしまい、見た目がよくないので、IEの場合のみ、XHTML 1.0 transitionalにして<iframe>で表示するようにしました。

添付ファイル: fileamazonkey2_withmysql.inc.php 867件 [詳細] fileamazonkey.inc.php 2171件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-05-26 (火) 11:47:51
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.530 sec.

OSDN