テンプレートの設定

このサイトで使用している arctic テンプレートの設定方法について紹介します。

DokuWikiの紹介を行っているページなどでは、sidebarmonobook テンプレートを採用している所が多いですが、ここでは arctic テンプレートをお勧めします。
その理由として、

  • 管理画面よりサイドバーの表示/非表示が可能
  • サイドバー表示位置を左/右/両方と設定できる
  • ユーザ/グループ/namespaces ごとにサイドバーを作成できる
  • 目次やtrace情報もサイドバーに組み込める
  • サイトの主要なレイアウト情報を設定ファイルで簡単に変更できる
  • 日本語問題なし
  • 更新も早く、しっかりメンテナンスされている

と、このサイトのようなサイドバーを表示した基本的なレイアウトのWikiサイトを構築しやすいからです。
(あと、せっかくテンプレート変えるなら、DokuWikiの特徴である ACL namespaces を活かしたサイドバーを作れる方が面白いですし。)

Install & Setting

  • Step1: arcticテンプレートの最新を Download よりダウンロードして解凍します。インストールしているDokuWikiのバージョンによってダウンロードするファイルが異なりますので注意してください。
  • Step2: <dokuwiki>/lib/tpl にアップロードします。
  • Step3: サイト設定画面の「基本」→「テンプレート」で、arctic を選択します。
  • Step4: サイト設定画面に「Arctic テンプレート設定」項目が追加されているので、サイトレイアウトに合わせて設定します。
    設定項目の説明は、arcticテンプレートページの Configuration セクションを確認してください。
  • Step5: サイトにサイドバーを表示する場合は、表示したい各種サイドバーを作成します。
    各種サイドバーの作成方法は、arcticテンプレートページの Sidebar types セクションを確認してください。

このサイトのサイドバー設定

このサイトのようなサイドバーを表示する場合の、実際の設定例を紹介します。

Configration

「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

Sidebars

サイドバー用に以下のページを作成しています。
「pagename to use for sidebars」を sidebar から別の名前に変更した場合は、「main」や「user」のページ名も同じ名前に変更してください。

タイプ リンク
main Menu
user1) admin
tags Tags
wiki Wiki
links Links

tpl_functions.phpのカスタマイズ

このサイトでは、TagsWikiLinksの各サイドバーを固定で表示し、かつ別々のグループレイヤーで表示させたかったため、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 の追加によって独自のサイドバーを表示させることも出来ますが、上記の修正だと作成したページをそのままサイドバーとして利用でき、管理も簡単です。

1) このサイドバーメニューはログインユーザにしか表示されません。
dokuwiki/install/doku-template.txt · 最終更新: 2007/08/10 01:41 (外部編集)
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0