Top
3-13. SSI includeの置き換え


Documentation

3-13. SSI include の置き換え

(※1.1.25以降)

TemplateBuilder のパラメータ replaceSSIInclude を true に設定することで、SSI Include の記述を insert プロセッサに置き換える機能を有効にできます。

SSI Include を Mayaa を通さずに動作させるには、Dreamweaver の Include が有効なバージョンか、または Apache などの Web サーバを通して閲覧します。デザイナーによるデザイン時に SSI Include を使うことで、コンポーネント部分を別ファイルにしたまま作業を進められます。

この置き換え機能は、おおまかに次の2つの機能に分かれます。

SSI Include の記述と変換

SSI Include は、例えば以下のような形で記述します。パス指定の属性には filevirtual があり、それぞれ挙動の異なるものですが、Mayaa では同等に扱います。

<!--#include virtual="include.html" -->

特定の記述をすることで、insert プロセッサの属性に値を指定することもできます。例えば次のような記述をしたとします。

<!--#include virtual="include$suffix.html?foo=bar&amp;bar=#fragment" -->

このとき、次のような記述をしたように変換されます。

<m:insert
    path="include.html"
    name="fragment"
    auto:foo="bar"
    auto:bar="" />

なお、include 対象のファイルはコンポーネントとなるため、全体をひとつのタグで囲んでいる必要があり、また doRender プロセッサで囲まれた領域を持つ必要があります。この制限を緩和するのが、自動的に doRender プロセッサで囲む機能です。

自動的に doRender プロセッサで囲む

本来の SSI Include で include する対象の形式は自由ですが、Mayaa の場合には insert プロセッサとなるため、いくつかの制限があります。

この置き換え機能を有効にしている場合、次の条件を満たすことでこの制限を回避できます。

これらを満たすとき、*.inc ファイルをビルドするときに全体を自動的に doRender プロセッサで囲みます。name 属性は空文字列です。

ただし、*.inc ファイルに何のタグにも囲まれていない文字列がある場合、実装上の都合でその文字列は無視されます。例えば次のようなファイルの場合、最後の "baz" は無視されます。必ず何らかのタグで囲んでください。

<span>foo</span>
<div>bar</div>
baz

このようにタグを並べただけの形式のファイルを使えることは、主にヘッダ (meta タグ、CSS や JavaScript など) を部品化する際に役立つでしょう。

なお、*.inc ファイルを通常の insert プロセッサから呼び出すことももちろん可能です。

Copyright (c) 2004-2009 the Seasar Foundation and others. all rights reserved.