Smarty と cakePHP 適当メモ 1

インストール方法はおいておいて(ぉぃ
とりあえず使い方とかだけ若干はまったのでメモしておく


*Controller系
○既存のSmartyだと

//変数のアサインはこう
$smarty->assign(‘変数名’, ‘出力データ’);

//表示はこう
$smarty->display(‘対象のテンプレパス’);

○cakePHPに入ると

   //変数のアサインはこう
$this->set(‘変数名’,’出力データ’);
//表示は$this->set() で同時に行うから意識しないでOK

*View系

   //表示は既存のSmartyになる
{$変数名} の形式

cakePHP部分での拡張も存在
・htmlヘルパーが使用可能

    -> htmlヘルパーについてはリファレンスを参照
http://cakephp.jp/doc/helpers.html#id4808750

なお<?php $html->*** ?> という使い方ではなく
{$html->**} というSmarty流の書き方になります。

・Elementが使用可能

    -> Elementの使いかたもりふぁれん(ry
http://cakephp.jp/doc/views.html#id4808257

これも同様に<?php $this->renderElement(‘**’) ?> という使い方ではなく
{$this->renderElement(‘**’)} というSmarty流の書き方になります。

*Element ではコントローラでセットした値がそのまま使えます
こんなかんじ。

//Contoroller

class TestsController extends AppController
{
var $uses = “DB”;

function index(){
$this->set(‘element_a’,’エレメントAにはこれが表示’);
$this->set(‘element_b’,’エレメントAにはこれが表示’);
$this->set(‘index_a’,’インデックスにはこれが表示’);
}
}

//View

//index.tpl
<body>
//エレメントAを表示
{$this->renderElement(‘element_a’)}

{‘index_a’} //インデックスにはこれが表示

//エレメントBを表示
{$this->renderElement(‘element_b’)}
</body>

//element_a.tpl
<body>
<hr>
<b>ここがエレメントA</b>
{‘element_a’} //エレメントAにはこれが表示
<hr>
</body>

//element_b.tpl
<body>
<hr>
<b>ここがエレメントB</b>
{‘element_b’} //エレメントBにはこれが表示
<hr>
</body>

Smarty流のアサインをしないとヘルパーが使えないのに若干ハマッタのでメモ
どうでもいいけど wordpress でインデントの方法教えてください。。。


->