人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Smarty

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

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

●質問者: esecua
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:NG PHP Smarty TPL テンプレート
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● munyaX
●60ポイント ベストアンサー

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

◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ