インクルード
テンプレート内に外部ファイルを読み込む
いくつかのテンプレートファイルを作成していると、サイト内の共通部分を再利用できるように管理をしたい場合があります。a-blog cmsでは、テンプレート内に外部ファイルを読み込むインクルード機能があり、任意のファイルをテンプレート内に表示できます。
Ver. 2.8.0 以上
Ver. 2.8.0 から新しい記法でインクルード文がかけるようになりました。以前のインクルードはただファイルを読み込んでくるだけでしたが、新しいインクルード文には、変数を読み込み先テンプレートに渡せる機能が追加されています。
* Ver. 2.7以下の記法でも動作しますので、バージョンアップしても大丈夫です。
読み込み元
@include("/path/to/file", {"key": "value", "key2": "value2"})
読み込み先
<p>{{key}}</p> <p>{{key2}}</p>
変数の渡し方は、@include()の第2引数に、JSON形式で渡します。変数の使い方は、通常の変数と違い2重の中括弧で囲むことで表示できるようになります。
デフォルト値
変数が空だったり引数として渡されなかった場合に、デフォルト値を設定できるようになっています。 |(パイプ)で区切り、default(" ") で定義できます。また、|(パイプ)で区切るものはデフォルト値だけでなく、別変数も記述できます。その場合は、左から見ていき空でない値があったときに、その変数が表示されます。
{{key | key2 | default("デフォルト値")}}
例:Ver. 2.7.x 以下
<!--#include file="/include/sample.html"--> <!--#include file="http://www.example.com/include/sample.txt"-->
上記の表記については、SSI(サーバーサイドインクルード) と同様の記述になりますが、a-blog cms がSSIを使ってインクルードをしているという事ではありません。Adobe Dreamweaver のデザインビューでインクルード後の画面が表示されるように同じ表記としています。
また、インクルードの記述をする際には、相対パスで記述する事も可能ですが、絶対パスで設定する事をおすすめします。絶対パスのルートについてはテーマのディレクトリがルートディレクトリとなり、SSIとは違う解釈となります。