バージョン | 1.4.2 |
---|---|
投稿者 | reimy |
状態 | 完了 |
投稿日 | 2004-01-11 (SUN) 16:45:13 |
子階層のページをまとめてインクルードするプラグイン。
include.inc.phpのワイルドカード版という感じ。ありそうでまだない。
孫階層までは必要ない(オプションで孫階層以下も含めてインクルードできてもいいけど)。
インクルードする順番は、ls2プラグイン同様、正方向と逆方向(reverse)が選択できると便利。
欲しいプラグイン/74に更に少し手を加えてみました。
--- include.inc.php.orig 11 Jan 2004 13:10:37 -0000 +++ include.inc.php 11 Jan 2004 14:26:00 -0000 @@ -43,17 +43,27 @@ $include_list[$vars['page']] = TRUE; - list($page) = func_get_args(); + list($page,$rev) = 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])) - { - return ''; + + $pages = array_values(get_existpages()); + for ( $i=0; $i<count($pages); $i++ ){ + if (!ereg( $page, $pages[$i])) { + array_splice( $pages, $i--, 1); + } + } + + if ( $rev == "reverse" ) { + $pages = array_reverse( $pages); + } + foreach ( $pages as $page ) { + if (!is_page($page) or isset($include_list[$page])) { + continue; } $include_list[$page] = TRUE; @@ -83,7 +93,9 @@ { $body = "<h1>$link</h1>\n$body\n"; } + $body_all .= $body; + } - return $body; + return $body_all; } ?>
にぶんのにさんのご指摘を受けて、相対指定の解決にget_fullnameを使うように修正したものを書いておきます。1.4.2との差分です
--- include.inc.php.orig 25 Nov 2003 01:24:41 -0000 +++ include.inc.php 11 Jan 2004 22:24:05 -0000 @@ -23,12 +23,24 @@ $include_list[$vars['page']] = TRUE; - list($page) = func_get_args(); - $page = strip_bracket($page); + list($page,$rev) = func_get_args(); + $page = get_fullname(strip_bracket($page), $vars['page']); - if (!is_page($page) or isset($include_list[$page])) - { - return ''; + $pages = array_values(get_existpages()); + for ( $i=0; $i<count($pages); $i++ ){ + if (!ereg( $page, $pages[$i])) { + array_splice( $pages, $i--, 1); + } + } + + if ( $rev == "reverse" ) { + rsort( $pages); + } else { + sort( $pages); + } + foreach ( $pages as $page ) { + if (!is_page($page) or isset($include_list[$page])) { + continue; } $include_list[$page] = TRUE; @@ -58,7 +70,9 @@ { $body = "<h1>$link</h1>\n$body\n"; } + $body_all .= $body; + } - return $body; + return $body_all; } ?>
いただきましたm(__)m。