#counter
*個別商品リンク [#v53c873c]
#contents
**参考ソース [#q449e64a]
[[ブラキチ]]先生に以前作っていただいた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 [#y7e269fa]


-<iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=hinatamitsuru-22&o=9&p=8&l=as1&asins=4062633760&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>

-<iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=hinatamitsuru-22&o=9&p=8&l=as1&asins=4061859765&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>


→つまり商品番号のところだけ違うわけですね。
**作ってみたPHP [#l53f6ad8]

2007年2月14日に作成
***ソース [#x2e7c82e]
 <?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>';
 }
 ?>
***ファイル [#a56e0547]
どぞ
#ref(amazon_shouhin.inc.php)
**使用例 [#a1b18e10]
***PukiWikiのソース [#td1e2352]
 |できたー!→|#amazon_shouhin(4062633760)|#amazon_shouhin(4061859765)|#amazon_shouhin(4163238107)|#amazon_shouhin(4061851004)
 |#amazon_shouhin(4087472159)|#amazon_shouhin(4087475468)|#amazon_shouhin(4087742946)|
***出力イメージ [#lda4b564]
|できたー!→|#amazon_shouhin(4062633760)|#amazon_shouhin(4061859765)|#amazon_shouhin(4163238107)|#amazon_shouhin(4061851004)|#amazon_shouhin(4087472159)|#amazon_shouhin(4087475468)|#amazon_shouhin(4087742946)|

**コメント等 [#zff4da42]
***苦労した点 [#t82ec138]
+function plugin_amazon_shouhin_inline()ではなく、function plugin_amazon_shouhin_convert()を使うんですね。~
 →他の"#"始まりのプラグインのソースを見て解決。
+UTF8,LFはだめで、SHIFT-JIS,CR+LFなんですね。~
 →"headers already sent"などのエラーが出る。(ググって解決)

***分かったこと [#g423ac99]
+"."は連結なんですね。
+func_num_args()はCのargcみたいに、プログラム名を含む訳ではないんですね。(引数が1つなら1)
+list($product_id) = func_get_args();で引数を変数に格納。


***バージョンアップ [#u35dc707]
+define('AMAZON_USER_ID','hinatamitsuru-22');として切り出すのは2007年2月15日に[[ブラキチ]]先輩のアドバイスにより実施。

***おまけ [#x3d7e44a]
-[[自分や父や母の宣伝]]
**2012年11月23日 トラッキングID変更 [#o12cb577]
 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


-----
#comment
------
-[[PHPメモ]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS