[kvasir-user:75] Re: 用語について質問

YOKOTA Takehiko skirnir @ t3.rim.or.jp
2007年 1月 9日 (火) 00:17:05 JST


横田です。

今年もよろしくお願いします。メールに順次回答していきますね。

NAKAMURA, Hiroshi wrote:

> ソースコードを読んでいくにあたり、以下の用語の意味、意図、役割を教えても
> らえると助かります。
> 
>  * alfr
>  * heim
>  * gard
>  * conceal

まず、私が北欧神話好きで、Kvasirは北欧神話の神様ということで、ところ
どころに北欧神話由来の単語を使っています。

* alfr

いわゆる「〜Manager」だと思ってください。ちなみにalfrとは妖精とか小人
という意味です。読みは「アールヴ」です。

* heim

KvasirのCMS機能はリクエストパス(/path/to/pageのようなもの)に対応する
Pageオブジェクトを内部に持っています。つまりパスツリーに対応するPageオ
ブジェクトツリーを持っているのですが、複数サイトを1つのKvasirインスタン
スで管理できるよう、このPageオブジェクトツリーを複数本持てるようになっ
ています。このツリーの一つ一つをheimと呼んでいます。heimとは国とか世界
という意味です。読みは「ヘイム」です。

また、デフォルトのheimはheimId=0で、システム用に使っているheimがheimId=1
です。複数サイトを管理する際にはheimId>=2のheimを作ることになります。

* gard

サーブレットコンテナにWebアプリケーションを配備するように、KvasirのPage
ツリーにWebアプリケーション的部分ツリーをぶら下げることが出来るように
なっています。この部分ツリーのことをgardと呼んでいます。gardとは国とか
世界という意味です。読みは「ガルド」です。

例えば/path/to/diaryというパスに「日記Webアプリプラグイン」をインストー
ルした場合、/path/to/diary以下の部分ツリーが1つのgardということになりま
す。

gardの概念を導入したのは、あるPageオブジェクトから同一アプリ内の別Page
オブジェクトを参照しやすいようにです。

gardのルートPage相対のパス表記として、「@/path/to/page」や
「%/path/to/page」という表記をすることがあります。

gardは入れ子に設定することが可能です。

gardと似た概念としてlord(ロード)があります。lordは「領主」の意味で
す(北欧神話の単語というわけではありません)。gardのルートとなるPage
はlordですが、lordが全てgardというわけではありません。(本当はlord=gard
にしたかったのですがうまく融合できませんでした…)

* conceal

KvasirではPageを隠す・隠さないの設定をすることが出来ます。Pageの表示状
態を表すのがconcealです。Page#isConcealed()がtrueの場合、そのPageは非表
示になっています。非表示の場合、検索結果にも含まれませんしブラウザから
直接アクセスすると「ページがありません」エラーになります。ただし、APIか
ら触る時には普通に見えます。またそのPageへのアクセス権限として「フルア
クセス」を持つユーザがブラウザから直接アクセスすると、ページの内容が表
示されます。

現在、concealの内部状態はフラグではなく、期間になっています。つまり、
Pageは内部的に「公開開始日時」「公開終了日時」を持っており、現在の日時
が公開開始日時から公開終了日時の間にある場合にPage#isConcealed()はfalse
を返します。それ以外の場合はtrueを返します。

また分からないことがあればどんどん聞いてください。ご迷惑をおかけします
がよろしくお願いします。

-- 
YOKOTA Takehiko
  skirnir @ t3.rim.or.jp


kvasir-user メーリングリストの案内