[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 メーリングリストの案内