ホーム > サポート・マニュアル > チュートリアル > 拡張機能の開発 > テンプレートエンジン(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>

ドキュメントの内容に関するお知らせフォーム

内容に誤り・現行バージョンと異なる部分がありましたら、下記のフォームよりお知らせください。


お名前
 
メールアドレス(任意)
 
お知らせ内容
Cookieに保存


携帯アクセス解析