CakePHP1.2用SmartyViewの最新版を公開いたします。
このViewを利用することで、SmartyテンプレートをCakePHPで利用することが出来ます。
ご利用には別途Smartyテンプレートシステムを用意する必要があります。
Bakeryにも1.2用SmartyViewが紹介されているのですが、CakePHP1.2.0.6311betaあたりから仕様の合わない部分や不具合等がいくつかありましたので、作り直して公開しております。基本的に、アーカイブを解凍していただき、そのままのディレクトリ構造をcakeシステムに適用していただければ動作すると思いますので、導入は簡単です。是非ご利用ください。
詳しくは、アーカイブ中のreadmeをお読みください。
※RC1で大きな仕様変更があったため、こちらの仕様に合わせて修正したSmartyViewを以前のバージョンのCakePHPに適用することが出来ませんが、afterSmartyRenderコールバックが呼び出されない不具合がありましたので、以前のバージョンを修正したものも合わせて公開させていただきます。6311betaを引き続きお使いの方は、SmartyView1.2.0.6311版をお使いください。
ダウンロードはこちら
▼CakePHP1.2.0.7119 RC1向け
smartyview-1.2.0.7119.zip
▼CakePHP1.2.0.6311 beta向け
smartyview-1.2.0.6311.zip
CakePHP RC2/RC3をご利用の方は こちら をご利用ください。
smartyview-1.2.0.7119RC向けを導入させていただいたのですが、
テストとしてpages_controllerで表示される部分をsmarty表記で書き直してみたのですが
view部分(テンプレート)で
{$html->(云々)}
と書いてもうまくいきませんでした。
オブジェクトがきてなさそうなのですが。
未熟な為、もし不備がありそうな部分がありましたらお教え願いますでしょうか?
ご質問ありがとうございます。
ヘルパーは問題なく使える筈なんですけど…どうしてでしょうかね。
表記は、リンクなら
{$html->link(‘test’, ‘test’)}
でいけると思うんですが。
試しに
{php}
print_r($this);
{/php}
とやってみてください。
その中の「_tpl_vars」というプロパティで見つかるのが、おそらく「{$hoge}」でアクセスできるものだと思います。もしヘルパーらしきものが全く見つからないのなら、コントローラのヘルパー定義が消えてしまっているんではないでしょうか(それでもhtmlはデフォルトで入る筈なんですけど)。
お答えありがとうございます。
{php}
print_r($this);
{/php}
で、_tpl_varsは確認できました。
サンプルのmylayout.tpl内で、
{php}
pr($this->_tpl_vars[“html”]->link(“test”, “test”));
{/php}
とすると「test」リンクは出ますが、
「pr();」しなければ出力出来ませんでした。
同様に
{$html->link(“test”,”test”);}
でも何も出力されませんでした。
他、ご指摘がございましたらよろしくお願いします。
Smartyタグ内で「;」をつけてはダメですよ。
×{$html->link(“test”,”test”);}
○{$html->link(“test”,”test”)}
原因はたぶんそれでしょう。
ずばりでした。
ありがとうございます。
ご迷惑おかけしてすみません。
引き続き勉強させていただきます。