Neo Inspiration

Feed Rss

Smarty と cakePHP 適当メモ

06.06.2007, cakePHP, Controller, Smarty, View, by .

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


*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 でインデントの方法教えてください。。。

Smarty と cakePHP 適当メモ への1件のコメント

  1. Pingback: links for 2008-06-19 « test

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>