TWiki : カスタマイズ
今日は、TWiki での各種設定の管理方法とそのカスタマイズについて調べてみました。TWiki には汎用的な「TWiki Variables」と呼ばれる環境変数のようなものがあり、その値を書き換えることで設定変更を行います。また、特定の TWiki Variables を参照することでシステムからさまざまな情報を取得することもできます。
まずはこのシステムを理解して、実際にカスタマイズしてみます。
TWiki Variables について
昨日の記事で Sandbox Web のトップページを編集しようとしたときに、以下のようなソースが表示されました。
この %<テキスト>% というのが TWiki Variables を展開している部分です。TWiki では、この TWiki Variables を介して各種設定を反映させたり、その他のさまざまな機能を実現させたりしています。ここでは、この TWiki Variables の概要をご紹介します。
種類
TWiki Variables には、大別して以下の 2 種類があります。
- Preferences Variables
- 今回のお題となっている各種設定を保存する変数です。これらはユーザーが明示的に値を設定できます。TWiki のコアシステムや各種プラグインなどによって各変数の機能が定義されています。ユーザーが新しい名前の変数を追加することも可能なので、XML でいう実体参照のような使い方もできます。
- Predefined Variables
- システムが自動的に値を設定する変数です。例えばページ名、URL などが取得できます。Predefined Variables のリストはこちら。もし同名の Preferences Variables が定義されていた場合、Preferences Variables のほうが優先されますので注意してください。
Preferences Variables への値の設定
Preferences Variables は、以下の場所で値を設定できます。
- configure で設定された {LocalSitePreferences} のページ(デフォルトは Main Web の TWikiPreferences)
- プラグインページ
- 各 Web の WebPreferences
- 個々のページ
- Main web にあるユーザー用のページ(ユーザー認証が有効になっている場合)
- セッション変数(セッション管理が有効になっている場合)
変数はこの順番で上書きされていきます。つまり、ユーザー用のページと WebPreferences で同じ変数が設定されていた場合、WebPreferences での設定が優先されます。
※TWiki 公式ページのドキュメントでは 2 と 5 が逆になっていますが、たぶん間違いだと思います。
ここのページで、以下のような書式で値を定義できます。
* Set <変数名> = <値>
スペースは上記のとおりに挿入してください。行頭にある 3 つの連続したスペースも必要です。この書式、番号なしリストとまったく同じですね。WebPreference のページを見るとよくわかりますが、この書式で書いておけば設定内容がページ上でそのまま確認できます。
また、個々のページで変数を設定する場合は「More topic action」の下にある「Edit topic preference settings」を使う方法もあります。こちらを使えば設定内容はページに表示されません。
主な設定項目
よくカスタマイズされると思われる設定をリストアップしてみました。
変数名 | 機能 |
---|---|
WEBTOPICLIST | 左のカラムに表示されるメニューの内容 |
WEBBGCOLOR | Web ごとの BG カラー |
WEBCOPYRIGHT | ページ下部に表示される著作権表示の内容 |
WEBRSSCOPYRIGHT | RSS に含まれる簡易な著作権表示の内容 |
NOAUTOLINK | on を設定すると WikiWord をリンクにしなくなる |
LINKTOOLTIPINFO | WikiWord のツールチップ表示の内容 |
EDITBOXWIDTH | 編集画面のテキストボックスの幅 |
EDITBOXWIDTH | 編集画面のテキストボックスの高さ |
EDITBOXSTYLE | 編集画面のテキストボックスのCSS |
WIKITOOLNAME | サイト名 |
WIKILOGOIMG | サイトロゴ画像 |
WIKILOGOURL | サイトロゴのリンク先 URL |
WIKILOGALT | サイトロゴの ALT テキスト |
FINALPREFERENCES | 上書きを禁止する変数を指定する |
ご参考までに。
実際に使ってみる
それでは実際にカスタマイズしてみましょう。いきなり WebPreferences を変更する前に、テストページを作成してローカル実験するのがよいでしょう。
テストページで実験
昨日と同じように Sandbox Web に移動し、Autonumbering でページを作成します。そして、ページ内容を以下のようにしてください。
---+ Preference Variables カスタマイズのテスト * WikiWord のリンクへの変換を抑制 * Set NOAUTOLINK = on * ロゴの変更 * Set WIKILOGOIMG = http://image.livedoor.com/img/top/05/logo.gif * Set WIKILOGOURL = http://www.livedoor.com/ * Set WIKILOGOALT = このロゴはいつまで見られるのか(笑) * 著作権表示の変更 * Set WEBCOPYRIGHT = Copyright © 2006 by 歩行者\nPowerd by TWiki. WikiWord がリンクにならない。%BR% 日本人的にはこのほうが使いやすいよね(^^;
このページを表示すると、以下のようになるはずです。
ロゴが変更され、WikiWord がリンクになっていないのがわかると思います。しかし、ページ下部の著作権表示は変更が適用されていません。これは、WebPreferences のページで WEBCOPYRIGHT の変数が FINALPREFERENCES に指定されているからです。また、別のページに移動するとロゴなどが元に戻ることも確認できるでしょう。
WebPreferences を変更
では、今度は同じ内容を WebPreferences のページに書いてみましょう。ページ左上の Jump フォームを使って WebPreferences のページに移動し、同じ内容をページの一番下に追加してください。
今度は、著作権表示も適用されました。また、Sandbox Web の全ページに変更が適用されているはずです。
今回は、TWiki Variables のシステムを使ったサイト設定の変更方法についてご紹介しました。最初は複雑だと思っていましたが、理解できると非常に合理的なシステムです。サイト単位、Web 単位、ページ単位、ユーザー単位と、階層的に設定を積み重ねていけるのは素晴らしいですね。次回は、さらに踏み込んだ見栄えのカスタマイズに挑戦しようと思います。
詳しくはこちらの記事をどうぞ!
この記事にコメントする