- 2009-05-12 (火) 0:52
- a-blog cms
どうもです。佐藤です。最近はまとまったサイズのシステムの制作にいそしんでいます。サイズが大きくなると考える事も増えますね。SEの研修を受けている友人の話を聞くと、フローとか機能の設計をしっかりやっているようです。僕も、もうちょっと頭を使った方がいいのかもしれません…。
例によって勘で使える人は、読み飛ばし推奨の記事です。今回は初心者向けではありませんが、教科書的に整理しているだけの内容です。
今回は、モジュールを中心とした、管理ページとテンプレートの関係についてです。
管理ページとテンプレートの関係
a-blog cmsは設計上、とてもきれいに機能や役割が整理されています。それはモジュールとテンプレートの関係でも同じことです。
a-blog cmsでは、どこの情報をどのように表示するかなどの設定は全て管理ページから行われます。日時表示のフォーマットなども設定できます。表示するモノの内容面はすべて管理ページからの設定になります。(現状、JSBannerなど一部の例外はありますが)
- テンプレート
- 表示の体裁
- 管理ページ
- 表示の内容(設定)
さらっと書いていますが、この設計思想が重要なポイントだと思っています。HTML(論理構造)とCSS(装飾設定)みたいな関係ですね。役割を明確に分担しています。つづく。
テンプレートのほう
例えばMovable Typeだと下記のように、記事を何件表示するか、のような記述がテンプレートタグに含まれていたりします。
1 2 3 4 5 | <ul> <mt:Entries lastn="5"> <li><mt:EntryTitle /></li> </mt:Entries> </ul> |
そのあたりの役割をa-blog cmsでは、表示上の整形はテンプレート、表示内容の設定は管理ページ、と明確に役割が分けられています。そのため、a-blog cmsの場合はテンプレート上では下記のようになります。
1 2 3 4 5 6 7 | <!-- BEGIN_MODULE Entry_List --> <ul> <!-- BEGIN entry:loop --> <li>{title}</li> <!-- END entry:loop --> </ul> <!-- END_MODULE Entry_List --> |
記述量は若干増えますが、loopだとかBEGIN&ENDだとか、明示的な記述になります。このテンプレートタグに相当する部分は、実はモジュール側でかなり自由に設計できるので、追加プラグインの作りやすさという意味で比重が増してきます。
追加プラグインの可能性については後々語りたいところです。自前のテンプレートエンジンを備えていて、入出力の関係性をハッキリさせたファイル構成と、それをサポートする関数群がプラグインの制作を加速させます。
管理ページのほう
その上で、管理ページ(例:下図)から表示件数やソートを設定して制御します。
上図はEntry_Listというa-blog cmsの中でも1、2を争う単純なモジュールなので、項目が少ないですが、逆にトップクラスの柔軟性を併せ持つEntry_Summaryだと下図のような設定画面になります。現在はdatetime系がdate関数の引数そのものだったり、だいぶ大振りな感はありますが、そのあたりも含めて正式版に合わせて進化していきます。(ますよね?)
個々のモジュールに一意な設定を
モジュールに一意な設定をするときはモジュールIDを設定して割り当てます。管理ページから下図のように指定して
下記のようにテンプレートに記述します。
1 2 3 4 5 6 7 | <!-- BEGIN_MODULE Entry_List id="lineage" --> <ul> <!-- BEGIN entry:loop --> <li>{title}</li> <!-- END entry:loop --> </ul> <!-- END_MODULE Entry_List --> |
これでモジュールID = “lineage”に対して一意な設定ができます。CSSのdiv#wrapperみたいな記述と同様に考えてもらえればと。IDentification、個体識別という意味で同じです。この先は、実際にベータ版を触っていただければ。
最後は何を書こう
序・破、ときたら離なわけですが、3つめで何を書くかは困り者です。
ところで、ジョハリの窓 ってみなさんご存知でしょうか? あまりメジャーな言葉ではありませんが。
見えるモノと見えざるモノの関係性を明確にしたモデルです。自己を変えることで、未知の窓の範囲は狭まるかもしれません。その未知を切り開かなければ、良い仕組みはできないように思えます。変化することで、今の自分に見えざるものを、可視化しなくてはいけません。と、佐藤は勝手に考えています。
- Newer: a-blog cmsのモジュールとテンプレート(離)
- Older: 使っているWebサービス15個を列挙してみた
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://blog.ayumusato.com/web/a-blog-cms-web/a-blog-cms%e3%81%ae%e3%83%a2%e3%82%b8%e3%83%a5%e3%83%bc%e3%83%ab%e3%81%a8%e3%83%86%e3%83%b3%e3%83%97%e3%83%ac%e3%83%bc%e3%83%88%ef%bc%88%e7%a0%b4%ef%bc%89/trackback
- Listed below are links to weblogs that reference
- a-blog cmsのモジュールとテンプレート(破) from ハブろぐ - blog.ayumusato.com


