サマリ | JavaScript で開閉できるツリーメニュー |
---|---|
リビジョン | 1.3 |
対応バージョン | 1.4.7 で動作することは確認済み |
作者 | revulo |
pagetree.inc.php プラグイン を JavaScript を利用するように作り直したものです。 JavaScript が使えないブラウザでも、それなりに動きます。
機能的には ajaxtree.inc.php プラグイン とまったく同じですが、 次のような違いがあります。
このサイトのメニューバーに ajaxtree.inc.php プラグイン によるツリーメニューを設置してあります。 見た目と機能はこれと同じなので、適当に触って試してみて下さい。
アーカイブファイルをダウンロードし、 PukiWiki をインストールしてあるディレクトリで展開します。
$ tar xvfz treeview-1.3.tar.gz
スキン (skin/pukiwiki.skin.php, skin/default.skin.php など) の <head>〜</head> のどこかに、以下の設定を追加します。
(PukiWiki の場合) <link rel="stylesheet" type="text/css" href="<?php echo SKIN_DIR ?>treeview/treeview.css" /> (PukiWiki Plus! の場合) <link rel="stylesheet" type="text/css" href="<?php echo SKIN_URI ?>treeview/treeview.css" />
または、スキンのスタイルシート (skin/pukiwiki.css.php, skin/default.css など) の @charset 行の直後に、 次のように書き加えても良いです *1。
@import "./treeview/treeview.css";
本家 PukiWiki の場合は、plugin/menu.inc.php の最後の部分を以下のように書き換えて下さい *2。
--- menu.inc.php.orig +++ menu.inc.php @@ -53,7 +53,7 @@ // Cut fixed anchors $menutext = preg_replace('/^(\*{1,3}.*)\[#[A-Za-z][\w-]+\](.*)$/m', '$1$2', get_source($page)); - return preg_replace('/<ul[^>]*>/', '<ul>', convert_html($menutext)); + return convert_html($menutext); } } }
あとは MenuBar ページに以下のように書いて下さい。
#treeview
なお、 Help や MenuBar などの階層化されていないページは、デフォルトでは表示しないようにしています。 それらのページも表示したい場合は、PLUGIN_TREEVIEW_HIDE_TOPLEVEL_LEAVES や PLUGIN_TREEVIEW_INCLUDE_LIST の設定を変更して下さい。
書式は次のようになっています。
#treeview
引数は取りません。MenuBar ページのどこかに #treeview と書くだけです。
設定方法は基本的に pagetree.inc.php プラグイン と同じなので、そちらの説明を見て下さい。 ただし、いろいろと機能を追加してあるので、追加分の説明を以下に記しておきます。
treeview.inc.php の先頭部分で以下の値を設定することで、動作をカスタマイズできます。
キャッシュ機能は、ext3 や NTFS などのファイルシステムでないと正常に機能しません *3。 ほとんどの環境でこの条件は満たされていると思いますが、 ファイルシステムが FAT32 などの場合は、このオプションを false に設定して下さい。
PLUGIN_TREEVIEW_SORT_TYPE を reading に設定すると、ページの並び順を制御することができます。 この機能は、sonots さんの lsx プラグインの実装をほぼそのまま利用しています。 詳細については以下のページをご覧下さい。
ツリーの一部分を常に展開して表示しておきたい場合は、 展開したいページを PLUGIN_TREEVIEW_EXPAND_LIST に正規表現で指定して下さい。 書き方の例をいくつか挙げておきます。
// PukiWiki ページと PHP ページは常に展開して表示 define('PLUGIN_TREEVIEW_EXPAND_LIST', '^(PukiWiki|PHP)$'); // PukiWiki ページの下は全て展開して表示 define('PLUGIN_TREEVIEW_EXPAND_LIST', '^PukiWiki'); // 2階層目まで全て展開して表示 define('PLUGIN_TREEVIEW_EXPAND_LIST', '^[^\/]+$');
skin/treeview/treeview.css を書き換えることで、 レイアウトや配色やアイコンを変更することができます。 一応 PukiWiki の標準スキンにあわせて調整してあるつもりですが、 設定を変えたい場合は background や padding-bottom の値を適当に変えて下さい。
また、ツリーの上にある TreeView というタイトルが要らない場合は、
#treeview h5 { display: none; }
という設定を追加すると消すことができます。
rewritemap.inc.php プラグイン などを使って PukiWiki/Install.html のような階層化された URL に見せかけている場合、 以下のように設定をする必要があります。
PukiWiki Plus! には SKIN_URI の設定項目がもとからありますが、 本家 PukiWiki の場合は自分で設定を追加して下さい。
基本的には MIT & GPL のデュアルライセンスです。 ただし以下のファイルについては、別途ライセンスを定めます。
他のライセンスを希望する場合は、連絡をいただければ対応を検討します。