smarty (3) のテンプレートとして 2 つの並列ディレクトリを追加しようとしています (失敗しました)。
要するに、基本テンプレートと別のカスタムを作成したいと思います。カスタム ファイルが存在しない場合、smarty は必ず存在するベース テンプレートを使用する必要があります。
それを行うものはすでにありますか?
もちろん、これはインポートでも機能します。
smarty (3) のテンプレートとして 2 つの並列ディレクトリを追加しようとしています (失敗しました)。
要するに、基本テンプレートと別のカスタムを作成したいと思います。カスタム ファイルが存在しない場合、smarty は必ず存在するベース テンプレートを使用する必要があります。
それを行うものはすでにありますか?
もちろん、これはインポートでも機能します。
はい、を使用して複数のテンプレート ディレクトリを指定できますsetTemplateDir
。
例
<?php
// setup template directories
$smarty->setTemplateDir(array(
'./templates', // element: 0, index: 0
'./templates_2', // element: 1, index: 1
'10' => 'templates_10', // element: 2, index: '10'
'foo' => 'templates_foo', // element: 3, index: 'foo'
));
/*
assume the template structure
./templates/foo.tpl
./templates_2/foo.tpl
./templates_2/bar.tpl
./templates_10/foo.tpl
./templates_10/bar.tpl
./templates_foo/foo.tpl
*/
// regular access
$smarty->display('file:foo.tpl');
// will load ./templates/foo.tpl
// using numeric index
$smarty->display('file:[1]foo.tpl');
// will load ./templates_2/foo.tpl
// using numeric string index
$smarty->display('file:[10]foo.tpl');
// will load ./templates_10/foo.tpl
// using string index
$smarty->display('file:[foo]foo.tpl');
// will load ./templates_foo/foo.tpl
// using "unknown" numeric index (using element number)
$smarty->display('file:[2]foo.tpl');
// will load ./templates_10/foo.tpl
?>
詳細については、Smarty から入手できます。
http://www.smarty.net/docs/en/api.set.template.dir.tpl
そしてここ
http://www.smarty.net/docs/en/resources.tpl#templates.from.specified.template.dir