Smarty


PHPファイルが置いてあるフォルダ外にSmartyのテンプレートファイルを置いたら急にテンプレートファイルを読み込めなくなりました。

一応設定では絶対パスでテンプレートのフォルダを指定しています。試しに display('フルパスtemplate.tpl') とすると問題なく表示されますが、これではNGです。本来の方法で表示させるにはどうすればいいのでしょうか?

回答の条件
  • 1人3回まで
  • 登録:2009/01/13 14:19:11
  • 終了:2009/01/14 09:58:49

ベストアンサー

id:munyaX No.1

munyaX回答回数120ベストアンサー獲得回数242009/01/13 20:56:51

ポイント60pt

Smartyの「template_dir」外にファイルを置いてしまったのですね。

どのようなソースを書かれているか分からないのですが、

以下のようにSmartyを継承して、利用する場合が多いと

思います。

require_once( 'Smarty.class.php' );
class ViewSmarty extends Smarty {
  public function __construct (){
    $this->template_dir = '/home/hoge/smarty/templates';
  }
}

このファイルをコピーして、テンプレートの場所を変更。

新しく作成した方のクラスを利用すれという方法が一点。

require_once( 'Smarty.class.php' );
class ViewSmarty extends Smarty {
  public function __construct (){
    $this->template_dir = '/home/foo/bar/templates/';
  }
}


ご利用の環境がLinuxなどUNIX互換なOSなら、シンボリックリンクなどを張って

しまうという手があります。この手法なら以下のように変更するだけです。

display('[シンボリックリンク]/template.tpl');

■ln ハードリンク・シンボリックリンクを張る。

http://x68000.q-e-d.net/~68user/unix/pickup?ln

id:esecua

なるほど、参考になります。

2009/01/14 00:02:55

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません