テンプレート機能の改善 - Ver. 3.1.0 リリース情報
この記事では、2023年09月14日にリリースされた「Ver. 3.1.0」の「テンプレート機能」の新機能・改善点について紹介しています。
新機能・改善点一覧
- CMS-6462 インクルード文で使えるグローバル変数を追加できるHook(addGlobalVarsInIncludePath)を追加
- CMS-6471 インクルード文に使用できるグローバル変数に「%{CATEGORY_LEVEL}」を追加
CMS-6462 インクルード文で使えるグローバル変数を追加できるHook(addGlobalVarsInIncludePath)を追加
「Ver. 3.0」よりテンプレートキャッシュ機能が追加され、テンプレートキャッシュが利用できるようになりました。 ただテンプレートキャッシュ有効時(デフォルト有効)の制限として、インクルード文内で利用できる「グローバル変数」に制限がありました。
インクルード文にグローバル変数を含める例
@include("/admin/entry/bcd/%{BCD}.html")
このインクルード文で使用できるグローバル変数は固定になっており、他のグローバル変数や、カスタムグローバル変数をインクルードで利用できず、不便な場合が多々ありました。 そこで、Ver. 3.1 では、インクルード文で利用できるグローバル変数を追加できる仕組みを用意しました。(カスタムグローバル変数もOKです)
インクルード文で使えるグローバル変数の追加方法
「Hook.php」を修正することにより、インクルード文で使えるグローバル変数を追加します。
extension/acms/Hook.php の「addGlobalVarsInIncludePath」メソッド
public function addGlobalVarsInIncludePath(&$globalVarNames)
{
$globalVarNames = ['SESSION_USER_AUTH', 'HOGE']; // 例)インクルード文に %{SESSION_USER_AUTH} と %{HOGE} を使えるようにする
}
上記の例のように、配列の形でグローバル変数名を指定します。すでにあるグローバル変数は、Hook.php で追加したカスタムグローバル変数でも大丈夫です。
注意事項
上記の方法で、インクルード文に使用できるグローバル変数を追加することができますが、注意する点があります。 グローバル変数の値ごとにテンプレートキャッシュを生成するので、ページ毎に値が違うような値の種類が多いグローバル変数を設定してしまうと、大量のテンプレートキャッシュが生成されることになり、キャッシュの意味がなくなってしまう可能性があります。ここで追加するグローバル変数は、とりうる値の数が少ないグローバル変数にしてください。
CMS-6471 インクルード文に使用できるグローバル変数に「%{CATEGORY_LEVEL}」を追加
「Ver. 3.1」でインクルード文に使用できるグローバル変数を拡張できるようになりましたが、「%{CATEGORY_LEVEL}」はデフォルトで使用できるようにいたしました。
デフォルトで使用できるグローバル変数
%{ECD}
%{BCD}
%{PBCD}
%{RBCD}
%{CCD}
%{PCCD}
%{RCCD}
%{ALIAS_CODE}
%{IS_ADMIN}
%{MODULE_NAME}
%{MODULE_ID}
%{ADMIN_PATH}
%{ADMIN_PATH_MID}
%{CATEGORY_LEVEL} // Ver. 3.1 で追加
テンプレート機能の紹介については以上になります。他 Ver. 3.1.0 の新機能・改善も多くありますので、ぜひご覧ください。
- 会員機能の詳細を見る
- memberテーマの詳細を見る
- エントリー編集機能改善の詳細を見る
- 監査ログ機能の詳細を見る
- 管理機能改善の詳細を見る
- キャッシュ機能改善 & Webhook機能改善の詳細を見る
日々使いやすいシステムとなるよう改善を勤めておりますので、皆様からの貴重なフィードバック、お待ちしております。
今後とも a-blog cms のことをどうぞよろしくお願いいたします。