8

テンプレートについて ( Templates In Kohana 3.1 )質問したところ、Kostache を使用する必要があることがわかりました。Mustacheテンプレート言語のモジュールです。

とにかく、Kohana 3.1 とすべての作品で Kostache モジュールを有効にしました。正しくインストールされています!次はどうする?それの使い方?

今、自分の意見をどこに置くべきですか? 私のコントローラーは何を拡張する必要がありますか? 変数を割り当てる方法は? ビューのヘッダー、フッターなどを作成する方法は?

多分それのためのステップガイドがありますか?これこれは私にはあまり役に立ちません...

4

4 に答える 4

7

今、自分の意見をどこに置くべきですか?

ビュー クラスにはテンプレートのロジックが含まれており、慣例により次の場所に格納する必要があります。classes/view/{template name}.php

テンプレートには HTML が含まれておりtemplates、モジュールのルートにあるディレクトリに保存する必要があります。templates/login.mustache

デフォルトでは、kostache はビュー クラスの名前に基づいてテンプレートの場所を見つけようとします。

ビュークラスが呼び出されView_Admin_Loginた場合、kostache は以下を探しますtemplates/admin/login.mustache

私のコントローラーは何を拡張する必要がありますか?

特別なコントローラを拡張する必要はありません。通常Controllerはベースとして正常に機能します。

変数の割り当て方法

コントローラ:

$view = new View_Admin_Login;

$view->message = 'Hello';
$this->response->body($view->render());

テンプレート:

{{message}}

もちろん、ビュー クラスで宣言するメソッドや変数は、テンプレートでも使用できます。同じ名前のクラス変数とメソッドがある場合、メソッドは常に変数よりも優先されます。

ビューのヘッダー、フッターなどの作り方

kostache ガイドを読むと役に立ちます。アイデアは、ビューを拡張することです。レイアウト テンプレートKostache_Layoutも参照してください。

于 2011-06-05T20:57:21.157 に答える
2

あなたが言った両方のリポジトリには、役に立たないという多くのデモと例があります。

于 2011-06-05T20:55:06.887 に答える
1

これを試して...

//アプリケーション/クラス/コントローラー:

class Controller_Test extends Controller {

 public function action_index()
 {
    $view = new View_Home;
    $this->response->body($view->render());
 }

}

//application/classes/view/Home.php:

class View_Home {
    public $name = "Chris";
    public $value = 10000;

    public function taxed_value() {
        return $this->value - ($this->value * 0.4);
    }

    public $in_ca = true;
    protected $_layout = 'home';
}

//application/templates/home.mustache:

Hello {{name}}
You have just won ${{value}}!
{{#in_ca}}
Well, ${{ taxed_value }}, after taxes.
{{/in_ca}}
于 2014-03-12T10:50:44.720 に答える