PukiWiki/Plug-inの仕様
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
RIGHT:&size(12){Category:[[:Category_Document]], [[:Plugi...
* PukiWikiのPlug-inの仕様 [#vf7eca73]
English version : [[PukiWiki/Plugin/en]]
---------------------
#contents
---------------------
** 概要 [#baf8a54d]
*** プラグインディレクトリについて [#n4fa1cbf]
PukiWiki のページをHTML 形式へコンバートする時と、プラグ...
デフォルトでは plugin です。
*** プラグイン名 [#q1f6de34]
英字または数字またはアンダースコア文字
*** ファイル名 [#k4a8a55f]
<プラグイン名>.inc.php
*** ページ内でのプラグインの呼び出し [#a8ccd0ba]
#プラグイン名
#プラグイン名(arg1,arg2...)
-行頭にスペースは含めることはできない
-引数内に括弧()を使用することができる。ただし ) 単体は不可
-引数を指定しなくても呼び出せる
実際には プラグインディレクトリ/<プラグイン名>.inc.php 内...
&プラグイン名(引数リスト);
&プラグイン名(引数リスト){[文字列]};
-文中で呼び出すことができる
実際には プラグインディレクトリ/<プラグイン名>.inc.php 内...
*** URL指定でのプラグインの呼び出し [#q74b9870]
pukiwiki.php?plugin=プラグイン名
実際には プラグインディレクトリ/<プラグイン名>.inc.php 内...
**関数 [#z3423080]
***function plugin_<プラグイン名>_convert() [#za5b8280]
-wiki ソースからHTMLへのコンバート時に、行頭へ「#プラグイ...
--プラグインが対応していない(関数が存在しない)場合、エ...
---ただし、本体以外から呼び出された場合は、その呼び出し元...
-HTMLへのコンバート時に呼び出されます
-引数は func_get_args() で配列へ格納できます([0]~[n])
--[[複数行引数>PukiWiki/1.4/ちょっと便利に/複数行のプラグ...
-func_num_args() によって、渡された引数の数を求めることが...
-返値がそのままHTML ソースとして使用されるので、[[クロス...
-返値をFALSE とすると、代わりにエラーメッセージを表示しま...
--ただし、本体以外から呼び出された場合は、その呼び出し元...
***function plugin_<プラグイン名>_inline() [#x5f9b3a4]
-wiki ソースからHTMLへのコンバート時に、「&プラグイン...
--1.4 系で追加
--プラグインが対応していない(関数が存在しない)場合、エ...
---ただし、本体以外から呼び出された場合は、その呼び出し元...
-引数は func_get_args() で配列へ格納できます([0]~[n])
-func_num_args() によって、渡された引数の数を求めることが...
--但し、
&hoge(引数リスト);
形式と
&hoge(引数リスト){[文字列]};
形式の互換のため、function plugin_プラグイン名_inline()で...
---関連:[[BugTrack/404]]
--文字列はPukiWiki 書式であるとして、HTML 形式へと変換済...
---関連:[[BugTrack2/65]]
-返値がそのままHTML ソースとして使用されるので、[[クロス...
-返値をFALSE とすると、代わりにエラーメッセージを表示しま...
--ただし、本体以外から呼び出された場合は、その呼び出し元...
***function plugin_<プラグイン名>_action() [#s081a0ef]
-GET・POSTメソッドでpluginを指定されたときに呼び出しを試...
--プラグインが対応していない(関数が存在しない)場合は、...
---ただし、本体以外から呼び出された場合は、その呼び出し元...
-返値は array('msg' => 'title', 'body' => 'contents')
--キー'body' の要素にはスキンのbody 部分に表示させたいコ...
---省略した場合には、$vars['refer'] で指定されているペー...
---ただし、ページを表示する前にアクセス制御を確認しないの...
--キー'msg' の要素には表示させたいタイトルを指定します。
---キー'body' を指定した場合は省略できません。
---キー'msg' の要素に''$1'' がある場合は、''$1'' を$vars[...
ちなみに、cmd でプラグインを呼び出した場合は、refer の代...
-[[die()>PHP関数:die]] または[[exit()>PHP関数:exit]] を実...
--pcomment プラグインなどの様に[[header()>PHP関数:header]...
--この場合に限り、全てのheader を出力した後に[[echo()>PHP...
-返値がそのままHTML ソースとして使用されるので、[[クロス...
***function plugin_<プラグイン名>_init() [#paf1243e]
-初期化関数。プラグインが呼び出されるとまず最初に実行され...
-1.4,4 以降では、返値にFALSE を指定可能です。この場合、エ...
--本体以外から呼び出された場合は、その呼び出し元に依存し...
$messages ハッシュ配列を設定し、set_plugin_messages($mess...
function plugin_<プラグイン名>_init()
{
$messages['_<プラグイン名>_messages'] = array(
'msg_title' => '<p>メッセージ:%s</p>',
'err' => <p>エラー:%s</p>);
set_plugin_messages($messages);
}
この例では、$_<プラグイン名>_messages という名前の global...
値は $messages['_<プラグイン名>_messages'] で設定したもの...
plugin_<プラグイン名>_convert() などの関数中では
global $_<プラグイン名>_messages;
のように宣言して使用します。
$_<プラグイン名>_messages['msg_title'] のようにしてアクセ...
ja.lng, en.lng で設定するような値をダウンロードするユーザ...
**ファイル内容 [#z1aca986]
ファイル内に[[echo()>PHP関数:echo]] や[[var_dump()>PHP関...
「PHP エラー: headers already sent」が出る原因になります...
ユーザに設定させる初期値などについては、define で定義して...
他の定義名とバッティングしないように、PLUGIN_<plugin-name...
コンバート時のGET・POSTの出力内容に必要なものは refer と ...
>
refer : そのページの名前($vars['page'])~
plugin : プラグイン名
<
とします。(1.4 系では、refer を省略する事が可能になりま...
以下の値を global でグローバル変数にすることによって値を...
$script : スクリプトのurl ※get_script_u...
$get : GETメソッドによるHTTPからの引数 ※$varsの使用...
$post : POSTメソッドによるHTTPからの引数 ※$varsの使用...
$vars : GET・POST両方のメソッドによるHTTPからの引数
$vars['page'] : 開いているページ名
(strip_bracket関数により[[]]を %%取り除ける%...
-- [[BugTrack2/213>BugTrack2/213#hb0abc89]] グローバル変...
-- 意図的にGETメソッド、またはPOSTメソッドを禁止するので...
--- 特に、他からも参照されるpage やrefer の値を書き換える...
***GET, POST メソッドの入出力パラメータ名に関する制限 [#l...
:'cmd', 'plugin'|
プラグイン名を渡すために、予約されています。また、どちら...
:'page'|
'cmd' でプラグイン名を渡す場合のページ名。閲覧時などでペ...
:'refer'|
'plugin' でプラグイン名を渡す場合のページ名。1.4 系なら、...
:'msg', 'pass'|
外部からメッセージ・文章やパスワードを受け取るために、予...
:'encode_hint'|
フォーム利用時に、文字化け防止用文字を自動付加するために...
:'word'|
本文中の特定の単語を色分けするために、予約されています。...
:'p'|
keitai.skin.php で本文をを分割する時に、利用されています...
:'digest'|
更新の衝突を検知するためのmd5 ハッシュを格納するために、...
-これ以外のパラメータ名は基本的に自由に使えます。しかし、...
***内部で予約しているグローバル変数など [#y03c2d4c]
代表的なものをいくつか。この他にも、pukiwiki.ini.php など...
:$script|スクリプトへのurl~
※get_script_uri() の使用を推奨します
:$get, $post, $vars|GETメソッド、POSTメソッド、GET・POST...
:$head_tags|head タグ内に出力したい内容を、収めておく配列...
ただし、スキンが対応(<?php echo $head_tag ?>)していない...
:$javascript|<meta http-equiv="Content-Script-Type" conte...
ただし、PKWK_ALLOW_JAVASCRIPT 定数によってjavascript を受...
:$pkwk_dtd($html_transitional)|出力するファイルの種類の宣...
以前(1.4~1.4.4)は$html_transitiona というフラグで、有...
スキンが対応していない(固定出力している)場合には、意味...
:$digest|convert_html() をする時に、$vars['page'] のペー...
対象としたいページとは別のものが入っている事があるため、...
:$do_update_diff_table|更新の衝突時に表示される、差分テー...
***PukiWiki本体の重要な定義など [#x5a0079e]
これらの定義に応じて、プラグインの動作ポリシーを変更する...
:PKWK_READONLY|変更を不可とする閲覧専用モードにするための...
同時に各種認証(管理者パス、ユーザー認証)が無効(正解で...
:PKWK_SAFE_MODE|もはや利用されていない機能、常時有効にす...
:PKWK_OPTIMISE|きちんと動作確認を済ませたのであれば必要の...
:PKWK_ALLOW_JAVASCRIPT|PukiWikiがJavaScriptを受け付けるか...
無効の場合は、JavaScriptを用いずに出力する事。(設定を無...
:PKWK_QUERY_STRING_MAX|PukiWikiが受け付けるQUERY_STRING(...
長いアドレスを生成する場合には、受付拒否されないようにチ...
:SOURCE_ENCODING|PukiWikiスクリプトのソースで使われている...
***クロスサイトスクリプティング(XSS) [#md2baa47]
func_get_args()でプラグインに渡される引数はサニタイズされ...
引数の値をHTML・XHTMLのタグの属性値として出力する場合、プ...
// ウソついていたら直修正してください。
ただし、インライン型プラグインの場合、{ }内の文字列はサニ...
&plugin(foo){bar};
形式の bar を得るには、
$args = func_get_args();
$bar = array_pop($args); // サニタイズ済み。そのままHTML...
のようにします。
barが省略された
&plugin(foo);
の場合でも、$barには空の文字列が入ります([[上記>#z3423080...
***htmlspecialchars 関数についての注意 [#d9101c2f]
~[[htmlspecialchars 関数>PHP関数:htmlspecialchars]]を用い...
~
PHP 5.5 以前のバージョンを使っている場合や、 default_cha...
とマニュアルにあるように、不一致による文字化けなどが原因...
***1.4系プラグイン作成時の注意 [#v243f7d2]
PukiWiki1.4にはアクセス制御が組み込まれているため、プラグ...
詳しくは [[PukiWiki/1.4/ちょっと便利に/任意のページごとの...
~プラグインの中でJavaScriptなどを記述するために<script>タ...
XMLのCDATAセクション(<![CDATA[~]]>で囲む)を使用するか、s...
***1.4系プラグイン作成時の注意(part2) [#vf244e1e]
~1.4用のプラグインもしくはスキンで、amazonアソシエートに...
+<iframe>を<object>に置き換える必要があります。src="..."...
+属性値の中の&を&amp;に書き換える必要があります。属性...
+<map>タグのname属性をid属性に変更する必要があります。
+<area>タグ、<img>タグなどを<area ... /><img ... />のよう...
+<img>タグ、<area>タグにalt属性を追加する必要があります。...
+クライアントサイドイメージマップを指定する<img>のusemap...
//pre内のコードが右に延びすぎて文書として大変読みづらくな...
//文章表現としてのコードと見受けられましたので崩し書きで...
//1024x768で見られる様に修正しました。
※都合により、リンク指定でのhttp表記を省略しています
-amazonアソシエーションで表示されたサンプル
<iframe scrolling="no" frameborder=0 width=120 height=6...
src="rcm-jp.amazon.co.jp/e/cm?t=hogehogesite-22&l=st1
&search=%E3%82%A4%E3%83%A9%E3%82%AF&mode=books-jp&p=11&...
<table border="0" cellpadding="0" cellspacing="0" width...
<tr><td>
<MAP NAME="boxmap11">
<AREA SHAPE="RECT" COORDS="4,584,115,600"
HREF="rcm-jp.amazon.co.jp/e/cm/privacy-policy.html?o=9"...
<AREA COORDS="0,0,10000,10000"
HREF="www.amazon.co.jp/exec/obidos/
redirect?tag=hogehogesite-22&path=tg/browse/-/489986">
</MAP>
<img
src="rcm-images.amazon.com/images/G/09/extranet/
associates/amzn_recommends/xproduct-skyscrapper120x600....
width="120" height="600" border="0" usemap="#boxmap11">
</td></tr>
</table>
</iframe>
~これをPukiWiki 1.4用に書き換えると次のようになります。
-スキンに導入したサンプル
<?php if (ereg("MSIE (3|4|5|6)", HTTP_USER_AGENT) == FAL...
<object width="121" height="602"
style="margin-left:auto;margin-right:auto;overflow:hidd...
data="//rcm-jp.amazon.co.jp/e/cm?t=hogehogesite-22&...
&search=%E3%82%A4%E3%83%A9%E3%82%AF&mode=books-...
<?php } else { ?>
<object width="140" height="620"
style="margin-left:auto;margin-right:auto;overflow:hidde...
data="rcm-jp.amazon.co.jp/e/cm?t=hogehogesite-22&l=...
&search=%E3%82%A4%E3%83%A9%E3%82%AF&mode=books-...
<?php } ?>
<table border="0" cellpadding="0" cellspacing="0" summ...
<tr><td>
<map id="boxmap11">
<area shape="rect" coords="4,584,115,600"
href="rcm-jp.amazon.co.jp/e/cm/privacy-policy.html?o=9"...
<area coords="0,0,10000,10000"
href="www.amazon.co.jp/exec/obidos/
redirect?tag=hogehogesite-22&path=tg/browse/-/48998...
</map>
<img
src="rcm-images.amazon.com/images/G/09/extranet/
associates/amzn_recommends/xproduct-skyscrapper120x600....
width="120" height="600" style="border-style:none" usem...
</td></tr>
</table>
</object>
~<iframe>を<object>に書き換えるとき、widthとheightの値を...
~ここではIEとその他のブラウザで条件分けしていますが、CSS...
<object type="text/html"
data="rcm-jp.amazon.co.jp/e/cm?t=hogehogesite-22&l=...
&search=%E3%82%A4%E3%83%A9%E3%82%AF&mode=books-...
~1.3系用の[[amazonkey.inc.php>pukiwiki:自作プラグイン/ama...
~ただし、Internet Explorerの<object>にはバグがあり、<obje...
***1.4系(1.4.4rc1~)プラグイン作成時の注意(part3) [#v9b54...
~独自プラグイン等での管理者パスワードのチェックはpkwk_log...
*** pukiwiki 用の javascript を作成する際に考慮すべきブラ...
もともとPukiWiki 1.3.2からNetscape 4.xやIE4などには対応し...
(参照: [[PukiWiki/1.4/NewTable]] reimy さんの2002-09-17の...
**関連 [#z4a6d84f]
-[[プラグイン/開発者向け]]
-[[PukiWiki/技術資料]]
--[[PukiWiki/CSSのclass一覧]]
--[[PukiWiki/関数一覧表]]
終了行:
RIGHT:&size(12){Category:[[:Category_Document]], [[:Plugi...
* PukiWikiのPlug-inの仕様 [#vf7eca73]
English version : [[PukiWiki/Plugin/en]]
---------------------
#contents
---------------------
** 概要 [#baf8a54d]
*** プラグインディレクトリについて [#n4fa1cbf]
PukiWiki のページをHTML 形式へコンバートする時と、プラグ...
デフォルトでは plugin です。
*** プラグイン名 [#q1f6de34]
英字または数字またはアンダースコア文字
*** ファイル名 [#k4a8a55f]
<プラグイン名>.inc.php
*** ページ内でのプラグインの呼び出し [#a8ccd0ba]
#プラグイン名
#プラグイン名(arg1,arg2...)
-行頭にスペースは含めることはできない
-引数内に括弧()を使用することができる。ただし ) 単体は不可
-引数を指定しなくても呼び出せる
実際には プラグインディレクトリ/<プラグイン名>.inc.php 内...
&プラグイン名(引数リスト);
&プラグイン名(引数リスト){[文字列]};
-文中で呼び出すことができる
実際には プラグインディレクトリ/<プラグイン名>.inc.php 内...
*** URL指定でのプラグインの呼び出し [#q74b9870]
pukiwiki.php?plugin=プラグイン名
実際には プラグインディレクトリ/<プラグイン名>.inc.php 内...
**関数 [#z3423080]
***function plugin_<プラグイン名>_convert() [#za5b8280]
-wiki ソースからHTMLへのコンバート時に、行頭へ「#プラグイ...
--プラグインが対応していない(関数が存在しない)場合、エ...
---ただし、本体以外から呼び出された場合は、その呼び出し元...
-HTMLへのコンバート時に呼び出されます
-引数は func_get_args() で配列へ格納できます([0]~[n])
--[[複数行引数>PukiWiki/1.4/ちょっと便利に/複数行のプラグ...
-func_num_args() によって、渡された引数の数を求めることが...
-返値がそのままHTML ソースとして使用されるので、[[クロス...
-返値をFALSE とすると、代わりにエラーメッセージを表示しま...
--ただし、本体以外から呼び出された場合は、その呼び出し元...
***function plugin_<プラグイン名>_inline() [#x5f9b3a4]
-wiki ソースからHTMLへのコンバート時に、「&プラグイン...
--1.4 系で追加
--プラグインが対応していない(関数が存在しない)場合、エ...
---ただし、本体以外から呼び出された場合は、その呼び出し元...
-引数は func_get_args() で配列へ格納できます([0]~[n])
-func_num_args() によって、渡された引数の数を求めることが...
--但し、
&hoge(引数リスト);
形式と
&hoge(引数リスト){[文字列]};
形式の互換のため、function plugin_プラグイン名_inline()で...
---関連:[[BugTrack/404]]
--文字列はPukiWiki 書式であるとして、HTML 形式へと変換済...
---関連:[[BugTrack2/65]]
-返値がそのままHTML ソースとして使用されるので、[[クロス...
-返値をFALSE とすると、代わりにエラーメッセージを表示しま...
--ただし、本体以外から呼び出された場合は、その呼び出し元...
***function plugin_<プラグイン名>_action() [#s081a0ef]
-GET・POSTメソッドでpluginを指定されたときに呼び出しを試...
--プラグインが対応していない(関数が存在しない)場合は、...
---ただし、本体以外から呼び出された場合は、その呼び出し元...
-返値は array('msg' => 'title', 'body' => 'contents')
--キー'body' の要素にはスキンのbody 部分に表示させたいコ...
---省略した場合には、$vars['refer'] で指定されているペー...
---ただし、ページを表示する前にアクセス制御を確認しないの...
--キー'msg' の要素には表示させたいタイトルを指定します。
---キー'body' を指定した場合は省略できません。
---キー'msg' の要素に''$1'' がある場合は、''$1'' を$vars[...
ちなみに、cmd でプラグインを呼び出した場合は、refer の代...
-[[die()>PHP関数:die]] または[[exit()>PHP関数:exit]] を実...
--pcomment プラグインなどの様に[[header()>PHP関数:header]...
--この場合に限り、全てのheader を出力した後に[[echo()>PHP...
-返値がそのままHTML ソースとして使用されるので、[[クロス...
***function plugin_<プラグイン名>_init() [#paf1243e]
-初期化関数。プラグインが呼び出されるとまず最初に実行され...
-1.4,4 以降では、返値にFALSE を指定可能です。この場合、エ...
--本体以外から呼び出された場合は、その呼び出し元に依存し...
$messages ハッシュ配列を設定し、set_plugin_messages($mess...
function plugin_<プラグイン名>_init()
{
$messages['_<プラグイン名>_messages'] = array(
'msg_title' => '<p>メッセージ:%s</p>',
'err' => <p>エラー:%s</p>);
set_plugin_messages($messages);
}
この例では、$_<プラグイン名>_messages という名前の global...
値は $messages['_<プラグイン名>_messages'] で設定したもの...
plugin_<プラグイン名>_convert() などの関数中では
global $_<プラグイン名>_messages;
のように宣言して使用します。
$_<プラグイン名>_messages['msg_title'] のようにしてアクセ...
ja.lng, en.lng で設定するような値をダウンロードするユーザ...
**ファイル内容 [#z1aca986]
ファイル内に[[echo()>PHP関数:echo]] や[[var_dump()>PHP関...
「PHP エラー: headers already sent」が出る原因になります...
ユーザに設定させる初期値などについては、define で定義して...
他の定義名とバッティングしないように、PLUGIN_<plugin-name...
コンバート時のGET・POSTの出力内容に必要なものは refer と ...
>
refer : そのページの名前($vars['page'])~
plugin : プラグイン名
<
とします。(1.4 系では、refer を省略する事が可能になりま...
以下の値を global でグローバル変数にすることによって値を...
$script : スクリプトのurl ※get_script_u...
$get : GETメソッドによるHTTPからの引数 ※$varsの使用...
$post : POSTメソッドによるHTTPからの引数 ※$varsの使用...
$vars : GET・POST両方のメソッドによるHTTPからの引数
$vars['page'] : 開いているページ名
(strip_bracket関数により[[]]を %%取り除ける%...
-- [[BugTrack2/213>BugTrack2/213#hb0abc89]] グローバル変...
-- 意図的にGETメソッド、またはPOSTメソッドを禁止するので...
--- 特に、他からも参照されるpage やrefer の値を書き換える...
***GET, POST メソッドの入出力パラメータ名に関する制限 [#l...
:'cmd', 'plugin'|
プラグイン名を渡すために、予約されています。また、どちら...
:'page'|
'cmd' でプラグイン名を渡す場合のページ名。閲覧時などでペ...
:'refer'|
'plugin' でプラグイン名を渡す場合のページ名。1.4 系なら、...
:'msg', 'pass'|
外部からメッセージ・文章やパスワードを受け取るために、予...
:'encode_hint'|
フォーム利用時に、文字化け防止用文字を自動付加するために...
:'word'|
本文中の特定の単語を色分けするために、予約されています。...
:'p'|
keitai.skin.php で本文をを分割する時に、利用されています...
:'digest'|
更新の衝突を検知するためのmd5 ハッシュを格納するために、...
-これ以外のパラメータ名は基本的に自由に使えます。しかし、...
***内部で予約しているグローバル変数など [#y03c2d4c]
代表的なものをいくつか。この他にも、pukiwiki.ini.php など...
:$script|スクリプトへのurl~
※get_script_uri() の使用を推奨します
:$get, $post, $vars|GETメソッド、POSTメソッド、GET・POST...
:$head_tags|head タグ内に出力したい内容を、収めておく配列...
ただし、スキンが対応(<?php echo $head_tag ?>)していない...
:$javascript|<meta http-equiv="Content-Script-Type" conte...
ただし、PKWK_ALLOW_JAVASCRIPT 定数によってjavascript を受...
:$pkwk_dtd($html_transitional)|出力するファイルの種類の宣...
以前(1.4~1.4.4)は$html_transitiona というフラグで、有...
スキンが対応していない(固定出力している)場合には、意味...
:$digest|convert_html() をする時に、$vars['page'] のペー...
対象としたいページとは別のものが入っている事があるため、...
:$do_update_diff_table|更新の衝突時に表示される、差分テー...
***PukiWiki本体の重要な定義など [#x5a0079e]
これらの定義に応じて、プラグインの動作ポリシーを変更する...
:PKWK_READONLY|変更を不可とする閲覧専用モードにするための...
同時に各種認証(管理者パス、ユーザー認証)が無効(正解で...
:PKWK_SAFE_MODE|もはや利用されていない機能、常時有効にす...
:PKWK_OPTIMISE|きちんと動作確認を済ませたのであれば必要の...
:PKWK_ALLOW_JAVASCRIPT|PukiWikiがJavaScriptを受け付けるか...
無効の場合は、JavaScriptを用いずに出力する事。(設定を無...
:PKWK_QUERY_STRING_MAX|PukiWikiが受け付けるQUERY_STRING(...
長いアドレスを生成する場合には、受付拒否されないようにチ...
:SOURCE_ENCODING|PukiWikiスクリプトのソースで使われている...
***クロスサイトスクリプティング(XSS) [#md2baa47]
func_get_args()でプラグインに渡される引数はサニタイズされ...
引数の値をHTML・XHTMLのタグの属性値として出力する場合、プ...
// ウソついていたら直修正してください。
ただし、インライン型プラグインの場合、{ }内の文字列はサニ...
&plugin(foo){bar};
形式の bar を得るには、
$args = func_get_args();
$bar = array_pop($args); // サニタイズ済み。そのままHTML...
のようにします。
barが省略された
&plugin(foo);
の場合でも、$barには空の文字列が入ります([[上記>#z3423080...
***htmlspecialchars 関数についての注意 [#d9101c2f]
~[[htmlspecialchars 関数>PHP関数:htmlspecialchars]]を用い...
~
PHP 5.5 以前のバージョンを使っている場合や、 default_cha...
とマニュアルにあるように、不一致による文字化けなどが原因...
***1.4系プラグイン作成時の注意 [#v243f7d2]
PukiWiki1.4にはアクセス制御が組み込まれているため、プラグ...
詳しくは [[PukiWiki/1.4/ちょっと便利に/任意のページごとの...
~プラグインの中でJavaScriptなどを記述するために<script>タ...
XMLのCDATAセクション(<![CDATA[~]]>で囲む)を使用するか、s...
***1.4系プラグイン作成時の注意(part2) [#vf244e1e]
~1.4用のプラグインもしくはスキンで、amazonアソシエートに...
+<iframe>を<object>に置き換える必要があります。src="..."...
+属性値の中の&を&amp;に書き換える必要があります。属性...
+<map>タグのname属性をid属性に変更する必要があります。
+<area>タグ、<img>タグなどを<area ... /><img ... />のよう...
+<img>タグ、<area>タグにalt属性を追加する必要があります。...
+クライアントサイドイメージマップを指定する<img>のusemap...
//pre内のコードが右に延びすぎて文書として大変読みづらくな...
//文章表現としてのコードと見受けられましたので崩し書きで...
//1024x768で見られる様に修正しました。
※都合により、リンク指定でのhttp表記を省略しています
-amazonアソシエーションで表示されたサンプル
<iframe scrolling="no" frameborder=0 width=120 height=6...
src="rcm-jp.amazon.co.jp/e/cm?t=hogehogesite-22&l=st1
&search=%E3%82%A4%E3%83%A9%E3%82%AF&mode=books-jp&p=11&...
<table border="0" cellpadding="0" cellspacing="0" width...
<tr><td>
<MAP NAME="boxmap11">
<AREA SHAPE="RECT" COORDS="4,584,115,600"
HREF="rcm-jp.amazon.co.jp/e/cm/privacy-policy.html?o=9"...
<AREA COORDS="0,0,10000,10000"
HREF="www.amazon.co.jp/exec/obidos/
redirect?tag=hogehogesite-22&path=tg/browse/-/489986">
</MAP>
<img
src="rcm-images.amazon.com/images/G/09/extranet/
associates/amzn_recommends/xproduct-skyscrapper120x600....
width="120" height="600" border="0" usemap="#boxmap11">
</td></tr>
</table>
</iframe>
~これをPukiWiki 1.4用に書き換えると次のようになります。
-スキンに導入したサンプル
<?php if (ereg("MSIE (3|4|5|6)", HTTP_USER_AGENT) == FAL...
<object width="121" height="602"
style="margin-left:auto;margin-right:auto;overflow:hidd...
data="//rcm-jp.amazon.co.jp/e/cm?t=hogehogesite-22&...
&search=%E3%82%A4%E3%83%A9%E3%82%AF&mode=books-...
<?php } else { ?>
<object width="140" height="620"
style="margin-left:auto;margin-right:auto;overflow:hidde...
data="rcm-jp.amazon.co.jp/e/cm?t=hogehogesite-22&l=...
&search=%E3%82%A4%E3%83%A9%E3%82%AF&mode=books-...
<?php } ?>
<table border="0" cellpadding="0" cellspacing="0" summ...
<tr><td>
<map id="boxmap11">
<area shape="rect" coords="4,584,115,600"
href="rcm-jp.amazon.co.jp/e/cm/privacy-policy.html?o=9"...
<area coords="0,0,10000,10000"
href="www.amazon.co.jp/exec/obidos/
redirect?tag=hogehogesite-22&path=tg/browse/-/48998...
</map>
<img
src="rcm-images.amazon.com/images/G/09/extranet/
associates/amzn_recommends/xproduct-skyscrapper120x600....
width="120" height="600" style="border-style:none" usem...
</td></tr>
</table>
</object>
~<iframe>を<object>に書き換えるとき、widthとheightの値を...
~ここではIEとその他のブラウザで条件分けしていますが、CSS...
<object type="text/html"
data="rcm-jp.amazon.co.jp/e/cm?t=hogehogesite-22&l=...
&search=%E3%82%A4%E3%83%A9%E3%82%AF&mode=books-...
~1.3系用の[[amazonkey.inc.php>pukiwiki:自作プラグイン/ama...
~ただし、Internet Explorerの<object>にはバグがあり、<obje...
***1.4系(1.4.4rc1~)プラグイン作成時の注意(part3) [#v9b54...
~独自プラグイン等での管理者パスワードのチェックはpkwk_log...
*** pukiwiki 用の javascript を作成する際に考慮すべきブラ...
もともとPukiWiki 1.3.2からNetscape 4.xやIE4などには対応し...
(参照: [[PukiWiki/1.4/NewTable]] reimy さんの2002-09-17の...
**関連 [#z4a6d84f]
-[[プラグイン/開発者向け]]
-[[PukiWiki/技術資料]]
--[[PukiWiki/CSSのclass一覧]]
--[[PukiWiki/関数一覧表]]
ページ名: