====== テンプレートファイル ====== テンプレートの使い方には、大きく分けて2種類の使い方があります。 ===== 方法1:セクションを指定する方法 ===== テンプレートに以下のようにセクションを指定する、簡易的な方法です。 <%= 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=&b= SPACE" テンプレートファイル 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 を見てください。