- ベストアンサー
Smartyを使ってHello,worldを表示する方法
- Smartyをインストールしました。
- index.phpとindex.tplの内容を設定しました。
- http://web.domain/test/index.phpを表示するとエラーが出ませんが、何も表示されません。原因を特定できません。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
手元の環境にSmartyを入れて動かしてみたところ、正しく動作するのは確認してますので、基本的なところは間違ってないと思いますが…… > require_once(”Smarty.class.php"); これは正しく処理されていますか? これが処理されていれば以降は問題ないはずです。ファイルが見つからなくてエラー停止している可能性があります。 http://www.smarty.net/manual/ja/installing.smarty.basic.php ここにSmarty.class.phpを読み込ませる方法が何通りか書かれていますので、参照してください。
その他の回答 (2)
- magicalpass
- ベストアンサー率58% (378/648)
displayメソッドはパス指定が無い場合は$template_dirで指定された場所からテンプレートファイルを読み込みます。 ・$template_dirで指定されているディレクトリが存在しない ・テンプレートファイルが$template_dirの場所に存在しない という場合は表示されません。 (index.phpと同じ場所ではありません) テンプレートファイルの場所は正しいですか?
補足
フォルダの位置関係ですが /var/www/test/index.php /var/www/test/templates/index.tpl /var/www/test/templates_c /var/www/test/chche /var/www/test/configsとなっています。 templatesフォルダは、index.phpと同じtestフォルダ内にあるので index.php内で require_once("Smarty.class.php"); $smarty= new Smarty(); $smarty->template_dir="./templates/"; $smarty->compile_dir="./templates_c/";と指定しています。 コレではまずいのでしょうか?。 Smartyは使うのが初めてなので良く分かっていないのかもしれません。 よろしくお願いいたします。
- magicalpass
- ベストアンサー率58% (378/648)
> $o_smarty->display("hello.tpl"); > index.tplの内容 単にファイル名が違ってるだけかと……
補足
済みませんでした。質問文中の $o_smarty->display("hello.tpl"); は、 $o_smarty->display("index.tpl");の間違いでした。 つまり、index.phpとindex.tplでファイル名は合っているのですが、表示されないのです。 よろしくお願いいたします。
補足
不思議な現象ですが、インストール先、php.iniのpath設定等を変えていないのにチャンと動作するようになっていました。どこが悪かったのか今となっては判りませんが、取り敢えず動作するようになったのでこのままやっていこうと思います。例として書いたindex.phpやindex.tplの内容も変更していませんので何が何やら、、。 ご意見有難うございました。 質問の環境は、遠隔地に置いたサーバー(ubuntu)を自宅からsshリモート(MS-windows)して動作させていたのですが、他の言語類、サーバー環境はマトモ(多分)に動作しているので何が悪かったのか判らず、気分はすぐれませんが、 例題として require_once("Smarty.class.php"); $smarty=new Smarty(); を動かしてエラーが出なかったので、Smartyはきちんと探し出していたのだろうと思っています。 重ねてどうもご意見有り難うございました。