menulist.php.incに追加希望†
バージョン | 1.4.7 |
投稿者 | 中嶋 |
状態 | 完了 |
投稿日 | |
メッセージ†
質問箱4/599で質問させていただいている者です。
質問箱3/51においてでぃあばぁさんが作成されたmenulist.php.incに対して、追加で希望があります。
現時点では、#menulist(hogehoge/hoge1,hogehoge/hoge2)と記載すると、ページ名がそのまま表示されるようになっています。
これを、menulist([[hoge1>hogehoge/hoge1]],[[hoge2>hogehoge/hoge2]])のように、整形ルールを使用してエイリアスで表示させる事は可能でしょうか?
これが可能であれば、質問箱4/599も解決できるのですが。
よろしくお願いいたします。
コメント†
- ./leafmenulist
でぃあばぁさんのを改造してみました。PukiWiki純正の環境では確認出来ていないので、エラーとかあったらごめんなさい。 -- ぃぉぃぉ
- 最後の/の後ろのみを表示に使うようにしたものです。#leafmenulist(hogehoge/hoge1,hogehoge/hoge2,xxx/hoge3)と書くと、hoge1, hoge2, hoge3が表示されます。 -- ぃぉぃぉ
- ぃぉぃぉさん、ありがとうございます。テストしてみたところ、「Headers already sent.」と言うエラーが返ってきました。書式は、#leafmenulistで良かったでしょうか? よろしくお願いいたします。 -- 中嶋
- return '#menulist(): No menu items<br/>' . "\n";
を
return '#leafmenulist(): No menu items<br/>' . "\n";
に変更したらエラーが解除されました。しかし、表示しているページが、「hoge2」ではなく「hogehoge/hoge2」のように全ページ名で表示されてしまいます。何か解るようでしたら、よろしくお願いいたします。 -- 中嶋
- また、できれば、最後の/の後ろのみを表示に使うようにしたものではなく、別の名前も使用できるようにできたら、とてもありがたいです。 -- 中嶋
- 失礼しました。修正しました。別名については、ちょっと余力がないのでゴメンなさい。 -- ぃぉぃぉ
- テストしていませんが、
$r_page = rawurlencode($s_page);
if (strpos($vars['page'], $s_page) === 0) {
の2行を
if (preg_match('/\\[\\[(.+)>(.+)\\]\\]/', $s_page, $mch)) {
$s_page = $mch[1];
$page = $mch[2];
} else {
$page = $s_page;
}
$r_page = rawurlencode($page);
if (strpos($vars['page'], $page) === 0) {
と変えたらどうでしょうか --
- ぃぉぃぉさん、ありがとうございます。これで問題なく動きました。大変助かります。 -- 中嶋
- 最後にコメントいただいた方、ありがとうございます。こちらも、問題なくできました!早速、使用させていただきます。 -- 中嶋