Counter: 397, today: 1, yesterday: 0

個別商品リンク

参考ソース

ブラキチ先生に以前作っていただいたPHP

<?php
// PukiWiki - Yet another WikiWikiWeb clone.
// $Id: ruby.inc.php,v 1.6 2005/05/07 07:41:31 henoheno Exp $
//
// Ruby annotation plugin: Add a pronounciation into kanji-word or acronym(s)
// See also about ruby: http://www.w3.org/TR/ruby/
//
// NOTE:
//  Ruby tag works with MSIE only now,
//  but readable for other browsers like: 'words(pronunciation)'

define('PLUGIN_TARGET_USAGE', '&target(URL){link name};');

function plugin_target_inline()
{
	if (func_num_args() != 2) return PLUGIN_TARGET_USAGE;

	list($url, $body) = func_get_args();

	// strip_htmltag() is just for avoiding AutoLink insertion
	$body = strip_htmltag($body);

	if ($url == '' || $body == '') return PLUGIN_TARGET_USAGE;

	return '<a href="' . $url . '" target="blank">' . $body . '</a>';

}
?>

実現したいHTML

→つまり商品番号のところだけ違うわけですね。

作ってみたPHP

2007年2月14日に作成

ソース

<?php
// 
//  amazonの商品個別リンク用プラグインです。
//  2007/02/14 日向充(http://hinata.la.coocan.jp/pukiwiki/?FrontPage)

define('PLUGIN_AMAZON_SHOUHIN_USAGE', '#amazon_shouhin(product_id)');
define('AMAZON_USER_ID','hinatamitsuru-22');

function plugin_amazon_shouhin_convert()
{
   if (func_num_args() != 1) return PLUGIN_AMAZON_SHOUHIN_USAGE;

   list($product_id) = func_get_args();

   if ($product_id == '') return PLUGIN_AMAZON_SHOUHIN_USAGE;

   return '<iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=' . AMAZON_USER_ID . '&o=9&p=8&l=as1&asins=' .
    $product_id . '&fc1=000000&IS2=1&lt1=_blank&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr"' .
   ' style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>';
}
?>

ファイル

どぞ

使用例

PukiWikiのソース

|できたー!→|#amazon_shouhin(4062633760)|#amazon_shouhin(4061859765)|#amazon_shouhin(4163238107)|#amazon_shouhin(4061851004)
|#amazon_shouhin(4087472159)|#amazon_shouhin(4087475468)|#amazon_shouhin(4087742946)|

出力イメージ

できたー!→

コメント等

苦労した点

  1. function plugin_amazon_shouhin_inline()ではなく、function plugin_amazon_shouhin_convert()を使うんですね。
     →他の"#"始まりのプラグインのソースを見て解決。
  2. UTF8,LFはだめで、SHIFT-JIS,CR+LFなんですね。
     →"headers already sent"などのエラーが出る。(ググって解決)

分かったこと

  1. "."は連結なんですね。
  2. func_num_args()はCのargcみたいに、プログラム名を含む訳ではないんですね。(引数が1つなら1)
  3. list($product_id) = func_get_args();で引数を変数に格納。

バージョンアップ

  1. define('AMAZON_USER_ID','hinatamitsuru-22');として切り出すのは2007年2月15日にブラキチ先輩のアドバイスにより実施。

おまけ

2012年11月23日 トラッキングID変更

hinata-mitsurus-imac-2:plugin mitsuruhinata$ diff amazon_shouhin.inc.php amazon_shouhin.inc.php_20121123org 
7c7
< define('AMAZON_USER_ID','hogehoge-22');
---
> define('AMAZON_USER_ID','hinatamitsuru-22');
21c21




添付ファイル: fileamazon_shouhin.inc.php 79件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-11-23 (金) 16:20:16 (2570d)