WebOS Goodies

WebOS の未来を模索する、ゲームプログラマあがりの Web 開発者のブログ。

WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。
Subscribe       

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 は、以下の場所で値を設定できます。

  1. configure で設定された {LocalSitePreferences} のページ(デフォルトは Main Web の TWikiPreferences)
  2. プラグインページ
  3. 各 Web の WebPreferences
  4. 個々のページ
  5. Main web にあるユーザー用のページ(ユーザー認証が有効になっている場合)
  6. セッション変数(セッション管理が有効になっている場合)

変数はこの順番で上書きされていきます。つまり、ユーザー用のページと WebPreferences で同じ変数が設定されていた場合、WebPreferences での設定が優先されます。

TWiki 公式ページのドキュメントでは 2 と 5 が逆になっていますが、たぶん間違いだと思います。

ここのページで、以下のような書式で値を定義できます。

   * Set <変数名> = <値>

スペースは上記のとおりに挿入してください。行頭にある 3 つの連続したスペースも必要です。この書式、番号なしリストとまったく同じですね。WebPreference のページを見るとよくわかりますが、この書式で書いておけば設定内容がページ上でそのまま確認できます。

また、個々のページで変数を設定する場合は「More topic action」の下にある「Edit topic preference settings」を使う方法もあります。こちらを使えば設定内容はページに表示されません。

主な設定項目

よくカスタマイズされると思われる設定をリストアップしてみました。

変数名機能
WEBTOPICLIST左のカラムに表示されるメニューの内容
WEBBGCOLORWeb ごとの BG カラー
WEBCOPYRIGHTページ下部に表示される著作権表示の内容
WEBRSSCOPYRIGHTRSS に含まれる簡易な著作権表示の内容
NOAUTOLINKon を設定すると WikiWord をリンクにしなくなる
LINKTOOLTIPINFOWikiWord のツールチップ表示の内容
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 &copy; 2006 by 歩行者\nPowerd by TWiki.

WikiWord がリンクにならない。%BR%
日本人的にはこのほうが使いやすいよね(^^;

このページを表示すると、以下のようになるはずです。

ロゴが変更され、WikiWord がリンクになっていないのがわかると思います。しかし、ページ下部の著作権表示は変更が適用されていません。これは、WebPreferences のページで WEBCOPYRIGHT の変数が FINALPREFERENCES に指定されているからです。また、別のページに移動するとロゴなどが元に戻ることも確認できるでしょう。

WebPreferences を変更

では、今度は同じ内容を WebPreferences のページに書いてみましょう。ページ左上の Jump フォームを使って WebPreferences のページに移動し、同じ内容をページの一番下に追加してください。

今度は、著作権表示も適用されました。また、Sandbox Web の全ページに変更が適用されているはずです。

今回は、TWiki Variables のシステムを使ったサイト設定の変更方法についてご紹介しました。最初は複雑だと思っていましたが、理解できると非常に合理的なシステムです。サイト単位、Web 単位、ページ単位、ユーザー単位と、階層的に設定を積み重ねていけるのは素晴らしいですね。次回は、さらに踏み込んだ見栄えのカスタマイズに挑戦しようと思います。

関連記事

この記事にコメントする

Recommendations
Books
「Closure Library」の入門書です。
詳しくはこちらの記事をどうぞ!
Categories
Recent Articles