ホーム > サポート・マニュアル > チュートリアル > 拡張機能の開発 > テンプレートエンジン(Templateクラス)の使用 (前編)
テンプレートエンジン(Templateクラス)の使用 (前編)
ドキュメント最終更新日時:2010/09/08 09:23
a-blgo cmsのテンプレートエンジン
a-blog cmsは独自のテンプレートエンジンを備え、標準のGETモジュールはすべてこのテンプレートエンジンを通して実装されています。ここではそのTemplateクラスの使用方法を説明します。
Templateクラス
Templateクラスはテンプレートをもとに、与えられたデータに応じて情報を加工して出力します。
$Tpl = new Template($this->tpl);
$this->tpl
$this->tpl には、テンプレート上における、BEGIN_MODULE〜END_MODULEまでの間の文字列が自動で格納されています。下記のサンプルでハイライトされている部分が$this->tplの格納対象になります。
<html>
<body>
<!-- BEGIN_MODULE Sample_UseTpl -->
<p>{hoge} and {fuga}</p>
<!-- BEGIN foo --><p>{bar}</p><!-- END foo -->
<!-- END_MODULE Sample_UseTpl -->
</body>
</html>
addメソッド
addメソッドは、ブロック名や変数名とその値の情報をテンプレートに加えるメソッドです。
getメソッド
getメソッドは、加えられた情報をもとにテンプレート処理を解決し、その結果の文字列を取得するメソッドです。通常はreturnするときにそのまま呼び出します。
ACMS_Correctorクラス (校正オプションの利用)
モジュールのテンプレート内で校正オプションを利用する場合は、ACMS_Correctorクラスのインスタンスを同時に渡します。
$Tpl = new Template($this->tpl, new ACMS_Corrector());
サンプル
テンプレート(HTML形式)
<html>
<body>
<!-- BEGIN_MODULE Sample_UseTpl -->
<p>{hoge} and {fuga}</p>
<!-- BEGIN foo --><p>{bar}</p><!-- END foo -->
<!-- END_MODULE Sample_UseTpl -->
</body>
</html>
Sample_UseTplモジュール
<?php
require_once ACMS_LIB_DIR.'GET.php';
// /php/ACMS/GET/Sample/UseTpl.php
class ACMS_GET_Sample_UseTpl extends ACMS_GET
{
function get()
{
// Templateクラス
$Tpl = new Template($this->tpl, new ACMS_Corrector());
// <!-- BEGIN foo --> ~ <!-- END foo --> の中の {bar} にテキストを代入
$Tpl->add('foo', array('bar' => 'fooブロックの中のbar変数'));
// ブロックを介さない、モジュール直下の変数 {hoge} と {fuga} にテキストを代入
$Tpl->add(null, array('hoge' => 'ほげ', 'fuga' => 'ふが'));
// テンプレートを処理済みの文字列としてreturn
return $Tpl->get();
}
}
?>
実行結果
<html>
<body>
<p>ほげ and ふが</p>
<p>fooブロックの中のbar変数</p>
</body>
</html>
ドキュメントの内容に関するお知らせフォーム
内容に誤り・現行バージョンと異なる部分がありましたら、下記のフォームよりお知らせください。



