PukiWiki/1.3/自作プラグイン

ISBN に対応した表紙写真を出力するプラグイン by 閑舎


ファイル

noimage.png

概要
http://www.amazon.co.jp が提供する書籍の表紙写真と、書名を表示する。
使い方
#isbn(4894712253)
#isbn(4894712253,right,PHPプログラミング入門)
#isbn(4894712253,left)
#isbn(4797314087,left,image)
#isbn(,clear)
#isbn
引数
引数説明省略時
1ISBN番号clearとレビュー作成の場合以外省略不可
2left,right,clearright
3タイトルタイトル自動取得
注意
  • clear は画像の回り込みを終了させる。
  • 第 3 引数を image にするとタイトルを表示しない。
  • キャッシュ機能により、タイトル自動取得の表示遅延を軽減する(半恒久的なので注意)。
  • isbn.inc.php の文字コードは各自の PukiWiki の文字コードと一致するように変更のこと。
  • 全ての引数を省略すると、ブックレビュー作成フォームが現れる。「書評」というページにこれを置くと「書評/ISBN番号」という子ページを作るよう動作する。
サンプル
http://rakunet.org/pukiwiki/?%E6%97%A5%E8%A8%98%2F2003-05-28
インライン版概要
http://www.amazon.co.jp が提供する書籍の書名を表示する。
インライン版使い方
&isbn(4797314087);を読んでみよう。
インライン版引数
引数説明省略時
1ISBN番号省略不可
インストール
  1. isbn4.inc.php をダウンロードし、isbn.inc.php にリネームして plugin ディレクトリに置き、noimage.png は image ディレクトリに置く(isbn_title.inc.php は不要)。
  2. 場合によって、NOIMAGE を正しく noimage.png の場所になるよう、書き換える。
変更点
Ver.0.6(isbn3) から Ver.0.7(isbn4) へは、ブックレビュー生成のデバッグ、認証問題の一応のクリア、です(うちのページは認証かけていても認証をすり抜けてしまったので)。ブックレビュー、インラインプラグインは PukiWiki/1.3 では使えないかも(最低 ./cache のディレクトリを作成する必要あり)、最近のユーザなので、この辺よくわかりません。

  • はう・・・。ちょうど書籍管理をpukiwikiではじめたところ・・・です。タイトルが取れるとInterWikiよりいいかも。あとはForm入力に対応できれば、手持ちのバーコードリーダで読み取るだけで、かなりよさげ。 -- morikawa 2003-05-28 (水) 23:20:14
  • タイトルは自動取得できてます。タイトルのみ、画像のみ、みたいな出力もあるといいということかな? -- 閑舎 2003-05-28 (水) 23:45:37
    • 失敬しました。タイトルは自動取得できたんですね。 - morikawa - 2003-05-30 (金) 02:30:12
  • isbn.inc.php の文字コードを utf-8 のままアップロードしてしまいましたが、euc 版も置いといたほうがよかったかな(失敗)。 -- 閑舎 2003-05-29 (木) 09:02:15
  • おおお!これはイイですね~。書籍紹介が簡単になるなぁ -- 龍司 2003-05-29 (木) 16:21:30
  • ありがとうございます。タイトルだけでなく画像もキャッシュしないと重いみたいです。また morikawa さんの言われた機能はこちらでも必要になりそうになってきたので追加中です。仕事なので今日の深夜に完成予定です。 -- 閑舎 2003-05-29 (木) 16:55:04
  • これは便利!書籍に限らずAmazon で取り扱っているのは何でもいけそうですね。 -- nao-pon 2003-05-29 (木) 23:03:09
     } else {
       $nocache = 1;			  // キャッシュ見つからず
       $body = implode('', file($url));	  // しかたないので取りにいく
       $body = mb_convert_encoding($body,SOURCE_ENCODING,"SJIS");
       $tmpary = array();
       preg_match('/Amazon.co.jp: ([^:]*):(.*)</', $body, $tmpary);
       $category = trim($tmpary[1]);
       $title = trim($tmpary[2]);
       preg_match('/価格:<font color=#990000>¥(.*)<\/font>/',$body,$tmpary);
       $price = trim($tmpary[1]);
     }
    こうしておいて、配列で返して加工して、こんな感じで試しています。
  • 画像の存在チェックをfopenでやってますが、amazonでは画像が存在しないのではなく1×1の画像が「存在」するので、fopenでのチェックは意味がないです。fopenだとNOIMAGE画像は表示されません。閑舎で書いたようにgetimagesizeでチェックする必要があります。 -- reimy 2003-05-30 (金) 00:40:53
  • 1x1 の画像の件、了解です。ただ ISBN に hogehoge と入れたようなケースも想定していたので……今は getimagesize も入れさせてもらってます。キャッシュは終わったけれど、新しいページを作るのにもう少しかかっています。 -- 閑舎 2003-05-30 (金) 01:14:25
  • ISBNの入力部分の引数チェックも必要ですね。1~9桁めは[0-9]、10桁めは[0-9X]。 -- reimy 2003-05-30 (金) 02:22:59
    	$aryargs = func_get_args();
    +	$isbn = $aryargs[0];
    +	if (preg_match("/^[0-9]{9}[0-9X]$/",$isbn) == false)
    +	{
    +		return false;
    +	}
    -	$isbn = htmlspecialchars($aryargs[0]);  // for XSS
    • さらにシビアにチェックするなら、1~9桁めの数字から10桁めが正しいかどうかチェックする。参考 まあ、ここまでする必要はないでしょうけど。 -- reimy 2003-05-30 (金) 02:26:56
  • 改造版のほうも上記の入力チェックと、メッセージ類のlngファイル対応をしてみました。インラインの呼び出しを&isbn_titleではなく&isbnに変更しました。れいみぃ:PukiWiki/isbn.inc.php -- reimy 2003-05-30 (金) 03:57:00
  • ruby の amazon.rb は単純なので、私も PukiWiki に慣れるのにプラグインでもちょっと作るかなぁくらいの軽い気持ちで始めたのですが、いろいろのご教示、ご意見等で疲れてしまいました。これで一応当初の目的は達成しておつりがくる状態なので、ちょっと休憩します。 -- 閑舎 2003-05-30 (金) 05:08:04
  • isbn2.inc.php にはバグが残ってました。また、バージョン情報がおかしいです。isbn3.inc.php を使ってください。また、isbn2.inc.php、isbn.inc.php、isbn_title.inc.php はまぎらわしいので削除しておいていただけると幸いです。 -- 閑舎 2003-05-30 (金) 05:26:15
    • 上記3ファイルを削除しておきました。 -- ぱんだ 2003-05-30 (金) 09:05:31
    • ありがとうございます。 -- 閑舎 2003-05-30 (金) 13:47:43
  • Amazon画像がないときにesbooks画像を表示できるようにしてみました。れいみぃ:PukiWiki/isbn.inc.php -- reimy 2003-05-31 (土) 07:27:24
  • Hiki にある isbn プラグインではいろいろな書店へのリンクが張れるようです。こういう方向の拡張も可かな(ただし、画像表示だと、各リンク先が著作権等をどう扱っているか、チェックする必要はあるかな。amazon は積極的に使ってくださいっていう姿勢だけれど)。Hiki:isbn.rb -- 閑舎 2003-05-31 (土) 12:53:48
    • Hikiのisbnプラグインは検索だけですよね。検索だけならPukiWikiではlookupプラグインで実現しちゃってるので、必要ないでしょう。 -- reimy 2003-05-31 (土) 13:10:35
    • isbn.rb の仕組みはおっしゃる通りです。ただ、リンク先に画像があるものも多いので、使えるかも、と思った次第。問題は画像の著作権で、amazon はアソシエイトプログラムというものを介し、amazon サイトへのリンクを奨励しており、この手法は tDiary の amazon.rb で十分検証されて実装されているので無難と思われます。他サイトは、すべてのコンテンツは当サイトに著作権があり……無断での使用は著作権侵害にあたりうんぬんとなるので、各サイトで確認するか、問い合わせをおこなってから使用、となると思うのです。ちなみに紀伊之國屋のプロジェクトに関与したことがありますが、著作権に非常にうるさく、フリーウェアに理解なし、の印象でした。 -- 閑舎 2003-05-31 (土) 14:15:46
  • Amazon画像が存在しない場合に、任意の画像を表示できるようにしました。あとちょこっとバグfix。れいみぃ:PukiWiki/plugin/isbn.inc.php -- reimy 2003-06-02 (月) 13:53:40
  • Amazon以外の画像を指定したときにはAmazon画像のチェックを行なわないようにして、速度を改善しました。れいみぃ:PukiWiki/plugin/isbn.inc.php -- reimy 2003-06-05 (木) 05:14:35
  • proxy経由でamazonにアクセスしたいのですが、どうやったらいいのでしょうか。 -- kalessin? 2003-06-21 (土) 17:40:03
  • かなり強引ですが、プラグイン内にかかれているURLを修正して、プロキシを通るように書けばいけますよ。 -- Ynak 2003-06-23 (月) 22:39:25
    • たとえば、プラグイン中にURLが
      http://www.amazon.co.jp/exec/obidos/ASIN/
      とあったら、
      http://proxy_server:port/-_-http://www.amazon.co.jp/exec/obidos/ASIN/
      と変えてみるとか。 ちなみに、修正するのはPukiWikiサーバからAmazonに接続する部分のURLだけで良く、 HTMLタグ内のURLは、Webブラウザ上のプロキシ設定が使われるので修正する必要はありません。-- Ynak
  • おぉ、なるほど! でも残念ながらこれはDelegateにしか使えないみたい。このプラグイン以外にも他のサイトにアクセスするものがあるようなので、PukiWikiの初期設定でproxyが指定できると素敵ですね。 -- kalessin? 2003-06-25 (水) 20:26:30
  • isbnプラグインをバージョンアップしました。れいみぃ:PukiWiki/plugin/isbn.inc.php -- reimy 2003-07-23 (水) 23:54:00
  • いまさらかもしれませんが、洋書の画像が表示できませんね。 -- 木下牛 2004-07-25 (日) 02:55:09 画像のファイル名を
    ${isbn}.09.LZZZZZZZ.jpg
    のように09に固定していますが洋書の場合は01が来るようです。
  • aaacafeでPukiwiki 1.4.3使ってますが、インラインで使うとリンクが正しく張られませんでした。114行目あたりで$isbn 変数を展開するようにすると直りました。-- umino? 2005-01-29 (土) 14:56:02
    114行目あたり
    + return '<a href="http://www.amazon.co.jp/exec/obidos/ISBN=' . $isbn . '">' . $title . '</a>';
    - return '<a href="http://www.amazon.co.jp/exec/obidos/ISBN=$isbn">' . $title . '</a>';
  • ところでもう入手不可能なのでしょうか? -- 2006-04-14 (金) 00:23:43
    • わかり辛いけど、このページには添付されてますよ -- 2006-04-14 (金) 01:02:58
    • 見つかりました。ところでなぜ見えなくしてるんでしょうね? -- 2006-04-14 (金) 10:45:53
  • こちらのサーバの問題だと思うのですが、途中まで読み込んだところで止まってしまいます。以後、キャッシュを読み込むのでそのままになってしまいます。素人考えなのですが、恐らくキャッシュを見に行くまでの時間を遅延させれば良いのではないか? -- 2006-04-15 (土) 01:31:37
    • (途中で送ってしまったので追加分)と思うのですが、どうしたら良いでしょうか? -- 2006-04-15 (土) 01:32:18
    • 後、同じ理由なのかも知れませんが書名も取ってきてくれません。よろしくお願いします。 -- 2006-04-15 (土) 01:33:39
  • isbn.inc.php は,どこから入手(ダウンロード)できるのでしょうか? -- 4san? 2006-06-23 (金) 18:30:08
    • このページに添付されてます・・・って二度目なので、上にリンク追加しました
  • とてもよさそうなプラグインですが、画像が表示されませんでした。タイトルも取得できずISBN番号が出力されます。環境:PukiWiki 1.4.7 PHP v5.2.6 です。 -- ken? 2008-10-09 (木) 14:56:20

添付ファイル: fileisbn4.inc.php 2386件 [詳細] fileisbn3.inc.php 1779件 [詳細] filenoimage.png 1297件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-10-09 (木) 14:56:20
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.543 sec.

OSDN