<%= header_section %>
Hello
<%= body_section %>
Hello world.
<%= footer_section %>
* AlTemplate.runメソッドに渡したテンプレートファイルを解釈して、htmlを生成します。
* 単純な画面を作る場合に、簡易的に使うことができます。
===== 方法2:レイアウトファイルを使う方法 =====
全体のレイアウトを決定するテンプレートを作成し、それに個々の出力を当てはめてページを生成する方法です。
@contents = "my_contents.rhtml"
AlTemplate.run( "layout.rhtml" )
Hello
<% include( @contents ) %>
Hello world.
* レイアウトファイル(layout.rhtml)にフルセットのhtmlを記述し、画面によって変化のある部分だけ別のテンプレートを挿入(include)する方法です。
* 本格的なアプリケーションを作る場合に向いた方法です。
===== eRubyについて =====
eRubyのサブセットです。以下の機能があります。
** <%=h xxx %> **
* インスタンス変数を表示します。
* 式を評価し、結果を表示します。
* htmlエスケープします。
例
<%=h @my_message %>
<%=h @my_message * 3 %>
** <%= xxx %> **
* 上記と機能は同じですが、htmlエスケープせずに表示します。
** <%=s "FILENAME" %> **
* al_config.rb中のAL_URI_STATICに定義されたURLのパスを付加した文字列を生成します。
例
AL_URI_STATIC = "/img"の場合
テンプレートファイル
">
結果
** <%=u xxx %> **
* urlエンコードして表示します。
例
@url_param = "a=
URL:http://example.com?<%=h @url_param %>
結果
URL:http://example.com?a=<xx>&b= SPACE
** <% xxx %> **
* 制御構造を記述します。
例
<% 5.times do %>
Hello, world.
<% end %>
===== サブコマンド =====
** <%= include( インクルードするサブテンプレートファイル名 ) %> **
* サブテンプレートをその位置に挿入します。
** <%= header_section %> **\\
** <%= body_section %> **\\
** <%= footer_section %> **\\
* 各セクションを宣言します。
* 実際は、その位置に規定のHTML断片を埋め込むだけです。
===== サブコマンドの追加 =====
* AlTemplateクラスへ、cmd_XXXの命名規則でメソッドを追加し、COMMAND_EXTRACTOR定数に追加すると、それがサブコマンドとして使えるようになります。
* 詳細は、al_template_main.rb を見てください。