欲しいプラグイン/74
の編集
Top
/
欲しいプラグイン
/
74
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
Wikiを試したい方へ:
「この」Wikiは、
PukiWiki
のための公式Wikiです。
テスト書き込みなどは
お試しサイト
https://pukiwiki.osdn.jp/_trial/
をご利用ください
**相対指定可能なincludeプラグイン [#g92bf921] |RIGHT:70|LEFT:410|c |~バージョン|1.4.2| |~投稿者|[[reimy]]| |~状態|完了| |~投稿日|&new{2004-01-11 (SUN) 16:53:48};| ***メッセージ [#r299476c] 現在のincludeプラグインは #include(./sample) というように相対指定でページを指定できない。 このため、階層の深いページでインクルードする場合、 #include(&fpage;/sample) と書かないといけない(&fpage;はページ保存時にカレントページ名に置き換わる)。 ページ移動やBracketNameで相対指定ができるのだから、includeプラグインでも相対指定ができるように。 ***コメント [#oa707e8f] -[[ARAI]] &new{2004-01-11 (SUN) 21:00:09}; ~試しに改造してみました。こんなのでいいでしょうか? --- include.inc.php.oig 25 Nov 2003 01:38:42 -0000 +++ include.inc.php 11 Jan 2004 11:44:29 -0000 @@ -10,6 +10,26 @@ ページをインクルードする */ +function expand_relpath( $rpath) +{ + $path = explode('/', $rpath); + + for ( $i=0; $i<count($path); $i++ ) { + switch ( $path[$i]) { + case "..": + array_splice($path,$i-1,2); + $i-=2; + break; + case ".": + array_splice($path,$i,1); + $i--; + break; + } + } + + return implode('/', $path); +} + function plugin_include_convert() { global $script,$vars,$get,$post,$hr,$WikiName,$BracketName; @@ -25,6 +45,11 @@ list($page) = func_get_args(); $page = strip_bracket($page); + + if ( strstr($page, './')) { + $cwd = dirname($vars['page']); + $page = expand_relpath( $cwd ? $cwd."/".$page: $page); + } if (!is_page($page) or isset($include_list[$page])) { -[[にぶんのに]] &new{2004-01-12 (MON) 04:39:56}; ~make_link.php の get_fullnameを使うと良いのでは? -[[ARAI]] &new{2004-01-12 (MON) 07:37:12}; ~ああ、こんなものがあったんですね。私の「相対指定」の理解は間違っていたことも判明しました。一応、まとめて[[欲しいプラグイン/73]]にget_fullnameを使った版を書いておきます。 -[[reimy]] &new{2004-01-12 (MON) 18:55:30}; ~いただきましたm(__)m。相対指定可能のinclude.inc.phpをcvsに反映してほしいですね。 --includeプラグインが相対参照に対応しました [[cvs:plugin/include.inc.php]] (1.20) -- [[にぶんのに]] &new{2004-12-31 (金) 04:15:46}; #comment
**相対指定可能なincludeプラグイン [#g92bf921] |RIGHT:70|LEFT:410|c |~バージョン|1.4.2| |~投稿者|[[reimy]]| |~状態|完了| |~投稿日|&new{2004-01-11 (SUN) 16:53:48};| ***メッセージ [#r299476c] 現在のincludeプラグインは #include(./sample) というように相対指定でページを指定できない。 このため、階層の深いページでインクルードする場合、 #include(&fpage;/sample) と書かないといけない(&fpage;はページ保存時にカレントページ名に置き換わる)。 ページ移動やBracketNameで相対指定ができるのだから、includeプラグインでも相対指定ができるように。 ***コメント [#oa707e8f] -[[ARAI]] &new{2004-01-11 (SUN) 21:00:09}; ~試しに改造してみました。こんなのでいいでしょうか? --- include.inc.php.oig 25 Nov 2003 01:38:42 -0000 +++ include.inc.php 11 Jan 2004 11:44:29 -0000 @@ -10,6 +10,26 @@ ページをインクルードする */ +function expand_relpath( $rpath) +{ + $path = explode('/', $rpath); + + for ( $i=0; $i<count($path); $i++ ) { + switch ( $path[$i]) { + case "..": + array_splice($path,$i-1,2); + $i-=2; + break; + case ".": + array_splice($path,$i,1); + $i--; + break; + } + } + + return implode('/', $path); +} + function plugin_include_convert() { global $script,$vars,$get,$post,$hr,$WikiName,$BracketName; @@ -25,6 +45,11 @@ list($page) = func_get_args(); $page = strip_bracket($page); + + if ( strstr($page, './')) { + $cwd = dirname($vars['page']); + $page = expand_relpath( $cwd ? $cwd."/".$page: $page); + } if (!is_page($page) or isset($include_list[$page])) { -[[にぶんのに]] &new{2004-01-12 (MON) 04:39:56}; ~make_link.php の get_fullnameを使うと良いのでは? -[[ARAI]] &new{2004-01-12 (MON) 07:37:12}; ~ああ、こんなものがあったんですね。私の「相対指定」の理解は間違っていたことも判明しました。一応、まとめて[[欲しいプラグイン/73]]にget_fullnameを使った版を書いておきます。 -[[reimy]] &new{2004-01-12 (MON) 18:55:30}; ~いただきましたm(__)m。相対指定可能のinclude.inc.phpをcvsに反映してほしいですね。 --includeプラグインが相対参照に対応しました [[cvs:plugin/include.inc.php]] (1.20) -- [[にぶんのに]] &new{2004-12-31 (金) 04:15:46}; #comment
テキスト整形のルールを表示する