パンくずリスト(topicpath)と呼ばれる、ページの階層表現のユーザーインターフェースを提供するプラグイン。
#topicpath &topicpath;
パンくずリスト(Topic path)は現在参照しているウェブページの階層を表現するユーザーインターフェースです。例えばPukiWiki/ツアーというページに#topicpathと書くと、以下の様な表記に置き換わります。
[[Top>FrontPage]]>[[PukiWiki>PukiWiki]]>[[ツアー>PukiWiki/ツアー]]
基本的には以下の2通りの使い方を想定しています。
スキンに組み込む例(pukiwiki.skin.ja.php の30行目あたり)
<?php if ($is_page) { ?> <span class="small"><?php require_once(PLUGIN_DIR.'topicpath.inc.php'); echo plugin_topicpath_convert(); ?></span> <?php } ?>
以前のコメントは過去の自作プラグインリスト/topicpathにあります。
このリンク先って、make_link だったところを make_pagelink になりませんか?存在しないページへのリンクが?にならないので。。。
PukiWiki 1.4 で使うと、空の html が吐き出されてしまうのですがなぜでしょう?
失礼しました。私のミス(パーティションが644になっていなかった)でした。
そのページ自身もパンくずリストの最後に表示するがリンクにしないオプションがあるとうれしいです。
サイト全体であればtopicpath.inc.php内のPLUGIN_TOPICPATH_THIS_PAGE_DISPLAY でコントロールできたと思いますが、ページ毎に切り替えたいという事でしょうか?
例えば、ほげ1→ほげ2→ほげ3という階層があったとして、PLUGIN_TOPICPATH_THIS_PAGE_DISPLAYがTRUEの場合、ほげ3ページのパンくずリストに「ほげ1 / ほげ2 / ほげ3」と表示はされますよね?そして、それぞれはほげ1、ほげ2、ほげ3への直リンクになります。これをFALSEにした場合、表示は「ほげ1 / ほげ2 / ほげ3」のままで、ほげ1とほげ2だけはリンク、ほげ3(=現在地)は単なるテキストで、ということではないでしょうか?そういう機能なら、私も使いたいのですが…。(いまなら、FALSEにした場合、リンクもされませんが表示もされませんよね?)
なるほど、誤読していました。こんな感じでいかがでしょうか?topicpath.20040223.inc.php PLUGIN_TOPICPATH_THIS_PAGE_DISPLAYがTRUEで、PLUGIN_TOPICPATH_THIS_PAGE_LINK をFALSEにすると、該当の挙動になると思います。
私の希望はtopicpath.20040223.inc.phpで完璧です!ありがとうございます。kawachoさんの御希望内容がこれで満たされるといいのですが…。
ありがとうございます! 期待通りの表示になりました。
ばんくずリストのフォントとか色を変えたりすることはできないでしょうか...?
topicpathで表示されるページ名の文字列は基本的にリンクになりますので、CSSファイルのリンクに関するスタイルシート(a、a:link、a:visited、a:hoverなど)が適用されます。topicpathでのみ違うスタイルを適用したいのであれば、topicpath.inc.phpの下記の部分を書き換えてください。
- $topic_path .= "<a href=\"$script?".rawurlencode($landing)."\">$element</a>"; + $topic_path .= "<a class=\"topicpath\" href=\"$script?".rawurlencode($landing)."\">$element</a>";
あとはCSSファイルの中で .topicpath a、.topicpath a:link、topicpath a:visited、topicpath a:hoverなどに対してスタイルを指定すれば反映されます。
今、CSVで配布されているtopicpath.inc.phpに上記のtopicpath.20040223.inc.phpのような改造をするのはどうすればいいのでしょうか?
topicpath.inc.php : 30行目付近 global $script, $vars, $defaultpage; $page = isset($vars['page']) ? $vars['page'] : ''; - if ($page == '' || $page == $defaultpage) return ''; + if ($page == '') return ''; $parts = explode('/', $page);