インクルード

テンプレート内に外部ファイルを読み込む

いくつかのテンプレートファイルを作成していると、サイト内の共通部分を再利用できるように管理をしたい場合があります。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とは違う解釈となります。

v2.0.0 RC1 ダウンロード

a-blog cms v2.0 のリリース候補版となる a-blog cms v2.0RC1を公開いたします。 a-blog cms v2.0 は、これまでの使いやすさはそのままに、高度な管理機能の追加や、テーマ・管理画面の全面刷新を行い、新たなバージョンとして生まれかわりました。


v2.0 では機能別にライセンスが増えました

v2.0 では機能別にライセンスが増えました

間もなく正式版が公開となりますが、主要な機能やデザインについてご確認いただけます。是非新しいa-blog cmsをお試しください。

このバージョンは開発版になりますので、運用中のサイトにはインストールしないで下さい。また、バージョンアップは手作業で修正しないといけない作業がありますので、新規インストールのみのご利用となります。機能はスタンダードライセンス相当となります。

(RC1のダウンロードは終了いたしました。RC2をご利用ください)

v2.0の新機能

  • 管理ページを刷新
  • メディア管理
  • ゴミ箱
  • タイムラインモジュール(拡張アプリ, iOSアプリ)
  • CKEditorのバージョンアップ
  • ベンチマークモードでの表示項目を追加
  • テキストユニットに拡張フィールドを追加
  • 画像ユニットなどにパーセントサイズ指定が出来るように変更
  • マルチ言語対応ユニットカスタマイズ
  • エントリー系モジュールで複数ID指定を可能に
  • テンプレートエンジンにIF文を追加
  • キャッシュクリアのフックポイントを追加
  • テンプレートのパスを書き換えないオプションを追加
  • config.system.yamlをユーザ定義で上書きできるように変更
  • アーカイブスにある画像パスのドメインを変更できるオプションを追加
  • include virtualでもインクルード出来るように変更
  • カスタムフィールドグループで最大数を制限できるように変更
  • underscore.jsを標準搭載
  • 現在のURLのままログインできるように変更
  • フォームのログで管理者、送信者宛のメールを両方とるように変更
  • 動的フォーム機能
  • バージョン管理機能
  • テーマ類を刷新
  • ユニットグループをクリアするクラスを用意
  • IPが変わってもログアウトしないオプションを用意
  • ダイレクト編集のアップデート
  • 画像の保存・削除のフックポイントを用意
  • ユーザの情報にアイコン画像を追加
  • バックアップでメモリ消費を押さえるロジック変更

リニューアルされた管理ページ

スマホサイズの時

グローバル変数

テンプレートファイルのどこでも使える変数

通常、{title} のように記述される変数はモジュールの中に記述されている必要がありますが、グローバル変数はテンプレートのどこに記述しても編集されます。

グローバル変数の一例

%{BLOG_NAME}表示ページが属するブログの名前
%{CATEGORY_NAME}表示ページが属するカテゴリーの名前
%{KEYWORD}URLコンテキスト上で、指定されたキーワード
%{CID}カテゴリーID
%{EID}エントリーID

他の機能との組み合わせ

グローバル変数とインクルード機能を組み合わせて使うと、表示ページのカテゴリー毎に違うテンプレートファイルを読み込むという使い方もできます。

<!--#include file='/admin/entry/category%{CID}.html'-->

このような組み合わせでテンプレートのカスタマイズをする事は多くあります。特定のカテゴリーの時だけ利用したいカスタムフィールドを書いたテンプレートファイルを読み込む際に大事なテクニックの1つになります。

各種グローバル変数についてはリファレンス内のグローバル変数のページをご覧ください。