昨日の段階では、Smartyがうまく動かず、はまった状態ですたが…。
いろんなサイトを拝見し、1つ、目にとまった文章があった。
smarty という名前のサブディレクトリを使用しないなら
$this->subDir = 'smarty'.DS;
をコメントアウトする。
参照先:
Sun Limited Mt.様
ん?
「使用しないなら」って言ってる?
確かここはコメントアウトしてたはず…。
もしかして…。
「.tpl」の置き場をよく見ると、「app/views/smarty/test.tpl」となっている。
おっと?
もしかして、この「smarty」っていうディレクトリ、いらねんじゃね?と思い、上記のファイルを以下のように移動。
「app/views/smarty/test.tpl」 → 「app/views/test.tpl」
そしてアクセスしてみると!
キタ━(゚∀゚)━!!
ようやく画面が表示されますたYO!
やはり、文章はよく読むべきですな。
もう一度、今までやってたことをまとめる。
【cakePHP で Smarty を使うためにしたこと】
- まずはSmartyを手に入れる。「Smarty」
- 解凍して、中身の「libs」ディレクトリを「smarty」に変更する。
- 変更した「smarty」ディレクトリを「app/vendors/」に入れる。
※「app/vendors/smarty/」てな感じ。 - Smartyが使う以下のディレクトリを作成する。
「app/tmp/smarty/cache/」
「app/tmp/smarty/compile/」
※「app/views/smarty.php」を見ると、以下のように書かれてるから上記ディレクトリが必要なのですな?
$this->ext= '.tpl';
$this->Smarty->plugins_dir[] = VIEWS.'smarty_plugins'.DS;
$this->Smarty->compile_dir = TMP.'smarty'.DS.'compile'.DS;
$this->Smarty->cache_dir = TMP.'smarty'.DS.'cache'.DS;
$this->Smarty->template_dir = VIEWS.DS;
$this->Smarty->cache=true;
$this->Smarty->config_dir = 'config';
※てことは、「$this->ext= '.tpl';」を「$this->ext= '.html';」にすれば、「.tpl」でなく「.html」でもいけるのかすぃら?
- 「Smarty View class」とやらをダウンロードする。「Smarty View class」
- ダウンロードしたファイルを「smarty」に変更して、以下に保存する。
「app/views/smarty.php」
※さっきのファイルですな。 - 「cake/app_controller.php」を以下にコピーする。
「app/app_controller.php」
※どういうわけか「app/controllers/」の中に入れてたようで、これも動かなかった原因かと思ってまする。 - 「app/app_controller.php」に、「var $view = 'Smarty';」を追記する。
class AppController extends Controller {
var $view = 'Smarty'; //ここを追記。
}
参照先:
Sun Limited Mt.様
参照先:
インストールメモ様
※何度も何度も読ませていただきますた。
上記、参照先を読んでいくと、「
HTMLヘルパー({$html->input('Post/name', array('size'=>'30'))})を使用している場合、エラーが出る」と言ってますたが、その通りですた。
そのため、Smartyのプラグインを入れて、対処すますた。
しかし…。
すでにbakeした「.thtml」をもう一度「.tpl」にして、「<?php echo ~」とか「?>」を「{」、「}」に書き換えたり、HTMLヘルパー部分の修正をしたりするのは、結構めんどくさいかも…。
初めから「.tpl」で書き出してくれればとっても楽(ry