よろしくお願いします。
まずphpファイルから
$smarty->display('111/body.tpl');(*111はディレクトリ名)
を呼び出して、さらにbody.tplと同ディレクトリにあるcontents.tplを読み込もうとしています。
はじめのbody.tplは読み込むことができブラウザで表示されるのですが、contents.tplは読み込めず、
Warning: Smarty error: unable to read resource: "contents.tpl" in <絶対パス>/Smarty/Smarty.class.php on line 1095
のエラーが出てしまいます。
ちなみに/111/というディレクトリは、$template_dir以下、$template_dir/111/です。
{include file="contents.tpl"}
{include file="file:contents.tpl"}
{include file="絶対パス/contents.tpl"}
{include file="file:絶対パス/contents.tpl"}
など試しましたが、ダメでした。
知恵をお貸しください。よろしくお願いします。
No.2ベストアンサー
- 回答日時:
まずcontents.tplのみを呼び出して実行出来ますか?
templatesにフォルダを分けているなら、
下記のようになります。
/templates/
├ body.tpl
├/111/
└contents.tpl
├/222/
└contents.tpl
body.tplを呼び込んで、その中で、
{include file="111/contents.tpl"}
{include file="222/contents.tpl"}
で読み込めると思うのですが。
$this->template_dir = "/home/public_html/templates";
$this->compile_dir = "/home/public_html/templates_c";
$this->config_dir = "/home/public_html/conf";
Windowsの場合は、
$this->template_dir = "C:/home/public_html/templates";
>f_motionさん
何度もありがとうございます。
{include file="111/contents.tpl"}
↑で解決しました。
念のため、状況をご報告します。
ファイルの配置は下記の通りです。
├index.php
└/templates/
├/111/
├ body.tpl
└ contents.tpl
├/222/
├ body.tpl
└ contents.tpl
また設定は、仰る通りです。
$this->template_dir = "/home/public_html/templates";
$this->compile_dir = "/home/public_html/templates_c";
$this->config_dir = "/home/public_html/conf";
この状態でindex.phpから、
$smarty->display('111/body.tpl');
は読み込めます。
ただ、body.tplから
{include file="111/contents.tpl"}・・・(1)
は読み込めますが、
{include file="contents.tpl"}・・・(2)
ではダメでした。
てっきり呼び出し元のbody.tplと、読み込むcontents.tplが同ディレクトリなので、(2)の記述でいいと考えてしまっていました。
勉強になりました。本当にありがとうございました。
No.1
- 回答日時:
テンプレートの位置を多分指定していると思いますが、
それを、下記のように絶対パスで指定すれば大丈夫だと思います。
$this->template_dir = "/home/public_html/111/templates";
$this->compile_dir = "/home/public_html/111/templates_c";
$this->config_dir = "/home/public_html/111/conf";
呼び出すときは、どこからでも下記ような感じで呼び出せます。
{include file="contents.tpl"}
この回答への補足
重ねて質問になってしまうのですが、
{include file="contents.tpl"}
に絶対パスを使用してみたのは、111ディレクトリが下記ページの例7-8に該当すると考えたためです。
http://sunset.freespace.jp/smarty/SmartyManual_2 …
これでダメということは、他の原因(ディレクトリ指定やhtaccess)がありそうということでしょうか。
よろしくお願いいたします。
回答どうもありがとうございます。
言葉足らずでしたので、追加いたします。
111というディレクトリを作ったのは、他にも222のようなディレクトリを作って、そちらにもテンプレートを置きたいと考えているからです(数字で場合分け)。
さらに上位のtemplatesも111もテンプレートの入る状態にはできないのでしょうか?
/templates/
├ *.tpl
├/111/
└*.tpl
回答の通りにしましたところ、上位のtemplatesディレクトリのテンプレートが読み込めませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- その他(プログラミング・Web制作) Pythonを勉強しています。 5 2023/08/25 09:51
- その他(プログラミング・Web制作) Arduinoに関する質問 4 2023/08/07 21:19
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- C言語・C++・C# #include <stdio.h>int main(void) { int buf[100] = 6 2022/11/01 22:45
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CFileDialogの最初のディレクト...
-
rmdirでフォルダが消せません
-
Subversionのリポジトリの削除
-
[ ディレクトリ '.' は書き込み...
-
レンタルサーバーでPDF出力
-
fopenでファイルが開かない場合...
-
環境変数をMakefile内で有効に...
-
CygwinでNo such file
-
FTPコマンドでディレクトリごと...
-
PHPで新しいウインドウで開く命...
-
onedrive にexcelファイルをア...
-
PHP8を使うと、大量のWarningが...
-
PHPで特定のURLにジャンプす...
-
PHP4対応のサーバーではinclude...
-
imagejpegで表示されない。
-
VBAのコードを教えてください
-
これの対応OSを教えて下さい。p...
-
透過PNGが透過されない!!
-
手作業で埋め込んだ、UserForm1...
-
拡張子php画像をjpg画像等に変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FTPコマンドでディレクトリごと...
-
バッチを用いたフォルダの自動移動
-
CFileDialogの最初のディレクト...
-
現在位置より2つ上のディレク...
-
Subversionのリポジトリの削除
-
fopenでファイルが開かない場合...
-
makefile でファイルをコピーす...
-
VB.NET 最下位のディレクトリ名...
-
rmdirでフォルダが消せません
-
visualstudioでc#のdllができない
-
ファイルアップロードに関して...
-
絶対パス?絶対アドレス?意味...
-
MkDir関数
-
拡張子を隠すのは良い事なので...
-
Subversionで、ファイルをリネ...
-
powershell で書いたプログラム...
-
コマンドプロンプトを指定のデ...
-
ファイル選択ダイアログで選択...
-
aspのページが表示できません
-
JAVA内で複数のファイルを削除...
おすすめ情報