ページ(page)はKvasir/Sora上でWebページやファイルを表わすための概念です。
さらにKvasir/Soraではページに単なるWebコンテンツ以上の意味を持たせています。例えばログインユーザやユーザが所属するグループ、ユーザの役割(ロール)等をPageオブジェクトとして扱うようになっています。この考え方はZopeから来ています。
ページはorg.seasar.kvasir.page.Pageインタフェースで表現されます。
ページには種別(ページタイプ)があります。組み込みのページタイプには以下のものがあります。
- page
- 一般的なページ。Webページやファイルに対応します。
- directory
- ディレクトリ。Webサイトのディレクトリ(URLが「/」で終わるリソース)に対応します。
- user
- ユーザ。Kvasir/Soraの利用者を表わします。Kvasir/Soraではユーザオブジェクトもページの一種として実現されています。
- group
- グループ。Kvasir/Sora内のユーザの集まりを表わします。
- role
- ロール。Kvasir/Sora上での権限を表わします。
実はKvasir/Soraではディレクトリに限らずすべてのページが子ページを持つことができます。「それではディレクトリは不要では?」と思うかもしれませんが、WebサイトにおけるページリソースとディレクトリリソースではURLの末尾に「/」がつくかどうかという違いがあります。この違いは相対パスの記述に影響があるため、Webサイトのディレクトリリソースを忠実に表現できるようディレクトリタイプが設けてあるのです。
ページタイプはorg.seasar.kvasir.pageプラグインのorg.seasar.kvasir.page.pageTypes拡張ポイントにプラグインすることで新たに作成することができます。ページタイプを追加する方法は「ページタイプを追加するには」を参照して下さい。