相対指定可能なincludeプラグイン

バージョン1.4.2
投稿者reimy
状態完了
投稿日2004-01-11 (SUN) 16:53:48

メッセージ

現在のincludeプラグインは

#include(./sample)

というように相対指定でページを指定できない。

このため、階層の深いページでインクルードする場合、

#include(&fpage;/sample)

と書かないといけない(&fpage;はページ保存時にカレントページ名に置き換わる)。

ページ移動やBracketNameで相対指定ができるのだから、includeプラグインでも相対指定ができるように。

コメント

  • ARAI? 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]))
         {
  • にぶんのに 2004-01-12 (MON) 04:39:56

    make_link.php の get_fullnameを使うと良いのでは?

  • ARAI? 2004-01-12 (MON) 07:37:12

    ああ、こんなものがあったんですね。私の「相対指定」の理解は間違っていたことも判明しました。一応、まとめて欲しいプラグイン/73にget_fullnameを使った版を書いておきます。

  • reimy 2004-01-12 (MON) 18:55:30

    いただきましたm(__)m。相対指定可能のinclude.inc.phpをcvsに反映してほしいですね。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-03-09 (水) 17:28:00
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u8. HTML convert time: 0.283 sec.

OSDN