カテゴリ | |
---|---|
サマリ | contents の拡張 別バージョン |
バージョン | 1.4 |
投稿者 | tomix |
状態 | 完了 |
投稿日 | 2004-06-19 (SAT) 03:36:27 |
度々質問ばかりですみません。がんばってソース読んでるんですけど、デザイナーの僕にはちょっとお手上げ....
contentsと同様の機能のものを、MenuBarに記述し、その時のページの内容を表示するようなハックは可能でしょうか
グローバルナビゲーションとは別に各ページ内リンクのローカルナビゲーションが別コラムに生成されると読みやすいなと思うことがあります。
さらにメニューバーをフロートさせてスクロールに追随させると完璧ですが(これは別の話ですが)
ls2 プラグインを改造したほうが早いかも? title オプションで指定したページの見出し一覧が出るので。
ちょっと姑息 ⌣ かもしれませんが、こんなのはどうでしょう?
--- pukiwiki.skin.ja.php.orig Sun Apr 4 00:56:08 2004 +++ pukiwiki.skin.ja.php Sun Jul 4 07:48:14 2004 @@ -115,7 +115,7 @@ <tr> <td class="menubar"> <div id="menubar"> - <?php echo do_plugin_convert('menu') ?> + <?php echo menu_contents().do_plugin_convert('menu') ?> </div> </td> <td valign="top"> @@ -209,3 +209,27 @@ </body> </html> +<?php +function menu_contents() +{ + global $body; + + if ( !( $cnt = preg_match_all( + '/<h([234]) id="content_([\d_]+)">(.*)<\/h([234])>/', + $body, $cntts))) { + + return ''; + } + + $kill[0] = '/<a class="anchor_super" id=".*<\/a>/'; // ;-) + $kill[1] = '/<[\/\!]*?[^<>]*?>/si'; + + for ( $i=0; $i<$cnt; $i++ ) { + $str = preg_replace($kill,'',$cntts[3][$i]); + $lcl = $cntts[1][$i] - 1; + $ret .= "<ul class=\"list{$lcl}\"><li><a href=\"#content_{$cntts[2][$i]}\">{$str}</a></li></ul>\n"; + } + + return "<h5>Contents</h5>\n".$ret; +} +?>