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

PHPでSmartyを使用してます。
Smartyの設定をクラスで一元化しているのですが

require_once('smarty/libs/Smarty.class.php');
class Mysmarty extends Smarty {

public function __construct() {
$this->Smarty();
$this->template_dir = "C:/xampp/htdocs/test/templates/";
$this->compile_dir ="C:/xampp/htdocs/test/templates_c/";

}
}

このような感じで設定して http://localhost/test/index.php のファイルで
Mysmartyクラスを設定し、test.tpl を展開しているんですが仮に、
http://localhost/test/sample/index.php のファイルでテンプレートを
展開しようとすると以下のエラーメッセージが出ます。

Warning: Smarty error: unable to read resource: "test.tpl" in C:\xampp\php\PEAR\smarty\libs\Smarty.class.php on line 1095

そこで http://localhost/test/sample/ のディレクトリ内に
templates と templates_c ディレクトリを作成し、
http://localhost/test/sample/index.php を開くとテンプレートを
展開することができたんですがこのような現象は望んでいないので

C:/xampp/htdocs/test/templates/
C:/xampp/htdocs/test/templates_c/
にテンプレートファイルを一元化して設置したいのですがどのような解決方法があるでしょうか?


●質問者: jinchangz
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Class ON Pear PHP Smarty
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● hts1004
●60ポイント

ちなみに、index.phpでは、MySmartyクラスをnewされてますか?

コンストラクタとかはあまり詳しくはないので、質問内の関数が

うまく動いているかどうかはちょっとわからないのですが、とりあえず、

/// Smartyをnewする
require_once('smarty/libs/Smarty.class.php');
$smarty = & new Smarty;

//パラメータセット
$smarty->template_dir= "C:/xampp/htdocs/test/templates/";
$smarty->compile_dir= "C:/xampp/htdocs/test/templates_c/";

とかいたPHPファイルをindex.phpその他PHPファイルで必ずrequire_once

してやればできるかと。(個人的には実績ありです)

◎質問者からの返答

すいませんソース読み直してたら

最後にまたsmartyクラスをnewしてました。完全に私のミスです。

お手数掛けてすいませんでした。

関連質問


●質問をもっと探す●



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