このサイトで使用している arctic テンプレートの設定方法について紹介します。
DokuWikiの紹介を行っているページなどでは、sidebar や monobook テンプレートを採用している所が多いですが、ここでは arctic テンプレートをお勧めします。
その理由として、
と、このサイトのようなサイドバーを表示した基本的なレイアウトのWikiサイトを構築しやすいからです。
(あと、せっかくテンプレート変えるなら、DokuWikiの特徴である ACL や namespaces を活かしたサイドバーを作れる方が面白いですし。)
このサイトのようなサイドバーを表示する場合の、実際の設定例を紹介します。
「Arctic テンプレート設定」には以下の設定をしています。
| 設定項目 | 設定値 |
|---|---|
| sidebar setup | left |
| pagename to use for sidebars | sidebar |
| trace setup | top |
| actionlink style | buttons |
| namespace for group sidebars | group |
| namespace for user sidebars | user |
| left sidebar order | main,tags,wiki,links,user |
| content of the left sidebar | main と user にチェック 「other sidebars」に wiki,links,tags を設定 |
| right sidebar order | デフォルトのまま |
| content of the right sidebar | デフォルトのまま |
| position of the search field | left |
サイドバー用に以下のページを作成しています。
「pagename to use for sidebars」を sidebar から別の名前に変更した場合は、「main」や「user」のページ名も同じ名前に変更してください。
| タイプ | リンク |
|---|---|
| main | Menu |
| user1) | admin |
| tags | Tags |
| wiki | Wiki |
| links | Links |
このサイトでは、Tags、Wiki、Linksの各サイドバーを固定で表示し、かつ別々のグループレイヤーで表示させたかったため、arcticテンプレートのソースに以下の修正を行っています。
具体的には「other sidebars」に設定した、tags、wiki、links のそれぞれのサイドバーを表示させるために、tpl_functions.phpの145行目と146行目の間に以下のコードを追加しています。
case 'wiki': $ns_sb = 'wiki:sidebar'; if(auth_quickaclcheck($ns_sb) >= AUTH_READ) { print '<div class="namespace_sidebar sidebar_box">' . DOKU_LF; print p_sidebar_xhtml($ns_sb) . DOKU_LF; print '</div>' . DOKU_LF; } break; case 'links': $ns_sb = 'links'; if(auth_quickaclcheck($ns_sb) >= AUTH_READ) { print '<div class="namespace_sidebar sidebar_box">' . DOKU_LF; print p_sidebar_xhtml($ns_sb) . DOKU_LF; print '</div>' . DOKU_LF; } break; case 'tags': $ns_sb = 'tags:tag'; if(auth_quickaclcheck($ns_sb) >= AUTH_READ) { print '<div class="namespace_sidebar sidebar_box">' . DOKU_LF; print p_sidebar_xhtml($ns_sb) . DOKU_LF; print '</div>' . DOKU_LF; } break;
独自サイドバーを追加したい場合は、case条件を「other sidebars」に設定する名前にし、$ns_sbの値を作成したページ名に修正したcaseブロックを、tpl_functions.phpのswitch文に追加すればOKです。
なお、arcticテンプレートフォルダ直下の left_sidebar.html(left_sidebar.html) や、arctic/sidebars/<sidebarname>/sidebar.php の追加によって独自のサイドバーを表示させることも出来ますが、上記の修正だと作成したページをそのままサイドバーとして利用でき、管理も簡単です。