カテゴリ | |
サマリ | 下層ページのリスト表示 |
バージョン | 1.4.6 |
投稿者 | witi |
状態 | 完了 |
投稿日 | |
親ページ
├子ページ1
│ ├孫ページa
│ ├孫ページb
│ └孫ページc
└子ページ2
├孫ページd
└孫ページe
という階層構造があり、
親ページにa-eのページをアイウエオ順でリストにしたいのですが、
コレは可能でしょうか。
「PukiWikiヘルプ」の「プラグインマニュアル」
のような感じにしたいのですが、ご助言をいただければ幸いです。
- プラグインマニュアルのようにしたいが、ls2には何か不都合があって使えないということですか? --
- すみません。書き方がまずかったようです。要するにアイウエオ順で表示したいと言うことで、プラグインマニュアルを真似したいということではありません。ソースも見てみましたが、#ls2(,titel)ですと、ページ名、タイトルでの表示になりますので、階層ページの場合、単純にa→eのようには並びません。かといって、階層をやめ、単独のページaとすると、プラグインなどでは一括表示はできないのではないでしょうか。結局のところ、この条件ですと、手動になってしまいますか? -- witi
- ページ名にカタカナ(と/)だけ使う --
- ありがとうございます。ただ、その場合にも、1/a、1/c、1/e、2/b、2/dの場合には、a→eにはなりませんよね? -- witi
- たとえば、実際のページ名は1/a、1/c、1/e、2/b、2/dでも、コンテンツのタイトルを*a、*c、*e、*b、*dと記述し、これを一覧表示するような事は不可能ですか? --
- 標準のls/ls2では不可能。…つまりこういうことですか?
<?php
function plugin_lswiti_convert()
{
list($base,$level) = func_get_args();
$base .= '/'; $len = strlen($base);
foreach( get_existpages() as $fpname) {
if ( strncmp( $base, $fpname, $len) == 0 &&
substr_count( $fpname, '/') == $level ) {
$list[basename($fpname)] = $fpname;
}
}
ksort($list);
foreach( $list as $bn=>$fn ) {
$str .= "- [[$bn>$fn]]\n";
}
return convert_html($str);
}
?>
で、
#lswiti(親ページ,2)
他には…どこかに正規表現で指定できるlsがあったかもしれない。--
- すごい!まさしくそういうことでした。早速、「ls3.inc.php」という名称で保存し、利用させていただきました。どうもありがとうございました! -- witi
- ls3は既に発表されています。この程度の書き捨てであっても、作者への感謝を表したいのであれば、同一性保持を心がけるべきでしょう。是非lswiti.inc.phpのままで使ってくださいB-P --
- おお!それは大変に申し訳ありませんでした。ls3を知りませんでしたので、逆に私ごときの名前を冠したlswitiで使うのが心苦しかったため、敢えて変更してしまいました・・・。それとも、lswitiのwitiは私とは関係なかったのかな?いずれにしても、ご指摘ありがとうございました。早速修正させていただきます。 --
- 勿論、命名の由来は「witiさんの為(だけ)のls」ですよ。被った名称を避けたいのは、witiさんのサイトを見て同じ事をやりたいと思った誰かが既出のls3と勘違いする可能性云々という尤もらしい薄弱な根拠もありますが、基本的には単なる冗談です。では、「完了」にしておいて下さい。 --
- はい。本当に助かりました。どうもありがとうございました! --